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)

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

4

2 回答 2

3

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

a n b n不能与正则表达式匹配。

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

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

于 2012-07-15T12:59:06.400 回答
0
(?<Depth>\()
(
(?(Depth)([^\(\)]+))
|
(?<Depth>\()
|
(?<-Depth>\))
)*
(?(Depth)(?!))

对我来说很好。

于 2012-07-15T14:05:34.257 回答