我希望能够选择一些文本,它位于括号之间。
让我们说,我们有以下文字
This is a (sample (or, may be, not)) text, which I write in a browser(with keyboard)
我应该使用什么样的正则表达式模式,哪个会选择
(sample (or, may be, not))
和
(with keyboard)
对于任意数量的嵌套括号?
答案 0 :(得分:3)
正则表达式的一个已知限制是正则表达式无法处理嵌套。所以例如
n b n 无法与正则表达式匹配。
正确的带括号的字符串也不能与正则表达式匹配。
通常你会采用某种递归的无上下文语法实现
答案 1 :(得分:0)
(?<Depth>\()
(
(?(Depth)([^\(\)]+))
|
(?<Depth>\()
|
(?<-Depth>\))
)*
(?(Depth)(?!))
对我来说很好。