如何选择里面可能包含相同图案的图案?

时间:2012-07-15 12:49:40

标签: c# regex

我希望能够选择一些文本,它位于括号之间。

让我们说,我们有以下文字

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

我应该使用什么样的正则表达式模式,哪个会选择

(sample (or, may be, not))

(with keyboard)

对于任意数量的嵌套括号?

2 个答案:

答案 0 :(得分:3)

正则表达式的一个已知限制是正则表达式无法处理嵌套。所以例如

n b n 无法与正则表达式匹配。

正确的带括号的字符串也不能与正则表达式匹配。

通常你会采用某种递归的无上下文语法实现

答案 1 :(得分:0)

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

对我来说很好。