0

我正在尝试创建一个正则表达式,它可以找到一个开始前缀和一个结束前缀,它们之间有段落标签。但是我创建的那个并没有达到我的期望。

%%%HL_START%%%(.*?)</p><p>(.*?)%%%HL_END%%%

正确匹配 <p>This Should %%%HL_START%%%Work</p><p>This%%%HL_END%%% SHould Match</p>

这也匹配,但我不希望它匹配,因为它</p><p>不在开始和结束前缀之间

<p>%%%HL_START%%%One%%%HL_END%%% Some More Text %%%HL_START%%%Here%%%HL_END%%%</p><p>Some more text %%%HL_START%%%Here%%%HL_END%%%</p>

4

1 回答 1

1

我对正则表达式在这里是正确的解决方案并不完全满意;如果您进入嵌套的开始和停止标记,您可能没有常规语言......

对于这个特定示例,请尝试更改要使用的正则表达式,[^%]而不是.这样.*?匹配就不会超过%%%%H:_END%%%%

%%%HL_START%%%([^%]*?)</p><p>([^%]*?)%%%HL_END%%%
于 2012-07-26T00:32:02.457 回答