Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
例如,我希望能够选择括号之间的一些文本。
假设,我们有以下文字
This is a (sample (or, may be, not)) text, which I write in a browser(with keyboard)
我应该使用什么正则表达式模式,它将选择
(sample (or, may be, not))
和
(with keyboard)
对于任意数量的嵌套括号?
正则表达式的已知限制之一是正则表达式无法处理嵌套。所以例如
a n b n不能与正则表达式匹配。
正确括起来的字符串也不能与正则表达式匹配。
通常你会使用某种递归的上下文无关语法实现
(?<Depth>\() ( (?(Depth)([^\(\)]+)) | (?<Depth>\() | (?<-Depth>\)) )* (?(Depth)(?!))
对我来说很好。