1

我需要提取不平衡括号构造的内容。在 PCRE 手册中,我找到了匹配平衡括号的解决方案。

<\[ ( (?>[^(<\[|\]>)]+) | (?R) )* \]>

对于我的测试

<[<[ab<[cd]>]><[ef]>

它提取

0.0: <[ab<[cd]>]>
0.1: <[ef]>

但我想在没有最外层括号的情况下提取相同的内容:

0.0: ab<[cd]>
0.1: ef

有人可以指出解决方案吗?

4

1 回答 1

0

好吧,从您的正则表达式的外观来看,最外层外壳内的内容(它们在该术语的任何正常用法中都不是括号)已经被捕获在括号组中。我不知道您在什么上下文中使用 PCRE 库,但您想要的提取应该出现在“match #1”中(其中整个模式匹配是 match #0)。即您的数据应该看起来像:

0.0: <[ab<[cd]>]>
0.1: <[ef]>
1.0: ab<[cd]>
1.1: ef
于 2009-08-06T18:52:52.877 回答