2012-07-15 65 views
2

我希望能夠選擇,例如,括號內的一些文本。如何選擇可能包含相同圖案的圖案?

比方說,我們有如下文字

This is a (sample (or, may be, not)) text, which I write in a browser(with keyboard) 

我應該使用什麼樣的正則表達式,這將選擇

(sample (or, may be, not)) 
任何數量的嵌套括號

(with keyboard) 

回答

3

正則表達式的一個已知限制是正則表達式無法處理嵌套。所以例如

a n b n不能與正則表達式匹配。

正確加括號的字符串不能與正則表達式匹配。

通常你會某種遞歸上下文無關文法實施

0
(?<Depth>\() 
(
(?(Depth)([^\(\)]+)) 
| 
(?<Depth>\() 
| 
(?<-Depth>\)) 
)* 
(?(Depth)(?!)) 

工作正常。