我想创建一个正则表达式,找到一个开始前缀和一个在它们之间有段落标记的结束前缀。但是我所说的那个并不符合我的期望。
%%%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>
答案 0 :(得分:1)
我觉得正则表达式是正确的解决方案并不是很完全;如果你要进入嵌套的开始和停止标记,你可能没有常规语言......
对于此特定示例,请尝试更改正则表达式以使用[^%]
而不是.
,以便.*?
匹配不能超过%%%%H:_END%%%%
%%%HL_START%%%([^%]*?)</p><p>([^%]*?)%%%HL_END%%%