我试图在一天中的大部分时间里都可以正常工作。 在这一点上,我什至不记得自己曾经尝试过什么,还没有尝试过,所以现在我要寻求帮助!
我将使用php的preg_replace()
从svg代码中删除节。
但是这个简单的例子可以显示我面临的问题:
<div>
TRUE
</div>
<div>
FALSE
</div>
<div>
MAYBE
</div>
我该如何匹配中间div? 我的正则表达式的一个简单版本是
(?s)<div.*?FALSE.*?<\/div>
That doesn't work,因为它将与前2个div匹配,而不仅仅是中间一个。
(将匹配项向左扩展时,它仍然被称为贪婪吗?)
我尝试过的所有变化都无济于事。 我敢肯定,有一个简单的答案,就是我自己找不到。
答案 0 :(得分:-1)
好的,当然,我在发布问题后不久就找到了解决方案。
基本上,原始正则表达式始于
<div.*?
正确的答案是将.
替换为
(?:.(?!<div))
这是一个非捕获组,使用.
且<div
的负前瞻
由于先行和后方都不是匹配的一部分....这相当于:匹配“任何内容”,除了<div