2012-05-20 145 views
2

有一种简单的方法来检测一个字符串具有任何以下三种组合?:的检测匹配括号

...(...) ... 
...[ ... ] ... 
...<...> ... 

即,它包含一对匹配的括号,正方形或角撑架的? 我可以做3个单独的正则表达式语句。它可以减少到一个吗?

+0

听起来相似[此](http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml -self式标签)。 (((((((...)))? –

+0

使用你的正则表达式与'.. | .. | ..' – gdoron

+1

' @#@ FT%^%N *&#':) – georg

回答

4
/\([^[\]<>]*\)|\[[^()<>]\]*|\<[^[\]()]*\>/.test(str); 

在一个更简单的方法见:

/ 
    \(
     [ 
      ^[\]<> 
     ]* 
\) 
| 
\[ 
    [ 
     ^()<> 
    ] 
\]* 
| 
\< 
    [ 
     ^[\]() 
    ]* 
\> 
/
+2

+1。显而易见的答案... – gdoron

+2

是否有正则表达式语法荧光笔?我想试着了解它是如何工作的 – qwertymk