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.
我需要提取不平衡括号构造的内容。在 PCRE 手册中,我找到了匹配平衡括号的解决方案。
<\[ ( (?>[^(<\[|\]>)]+) | (?R) )* \]>
对于我的测试
<[<[ab<[cd]>]><[ef]>
它提取
0.0: <[ab<[cd]>]> 0.1: <[ef]>
但我想在没有最外层括号的情况下提取相同的内容:
0.0: ab<[cd]> 0.1: ef
有人可以指出解决方案吗?
好吧,从您的正则表达式的外观来看,最外层外壳内的内容(它们在该术语的任何正常用法中都不是括号)已经被捕获在括号组中。我不知道您在什么上下文中使用 PCRE 库,但您想要的提取应该出现在“match #1”中(其中整个模式匹配是 match #0)。即您的数据应该看起来像:
0.0: <[ab<[cd]>]> 0.1: <[ef]> 1.0: ab<[cd]> 1.1: ef