2013-08-05 275 views
0

下面的正则表达式可以正常工作以找到所有大括号('{'和'}')。但我需要找到双括号(“((”和“))”)双括号的正则表达式

/\{(((?>[^\{\}]+)|(?R))*)\}/x 

任何人谁知道如何翻译上述正则表达式是什么? 在多层次上找到括号是很必要的。所以它需要在圆括号之间找到括号。

回答

0

要知道您正在使用哪种正则表达式的风格将是有用的,但很有可能需要引用()字符,因为它们具有特殊含义。因此,用[(])替换([)],或使用反斜杠来引用它们。

+1

你以前的回答没有办法;)非常感谢你的帮助!我只是试图用{((和} with))替换{},这并没有实现(如预期的那样)。但是,这是行得通的: '/ \(\((((?)\ [^ \(\(\)\)] +)|(?R))*)\)\)/ x' –

+1

有效地有两个在正则表达式中引用一个特殊字符的方法,一个是反斜杠('\'),另一个是把它放到'[]'中。但是,请记住,方括号内的字符定义要匹配的字符的* set *,而不是* sequence *。 – piokuc

+0

好吧,很高兴知道。感谢您的帮助! –