[英]regex exclude nested html tag
i have a piece of text: 我有一段文字:
<strong>blalblalba</strong>blasldasdsadasdasd<strong> 3.5m Euros<br>
<span class="style6">SOLD</span></strong>
and I want to remove <strong> contains $|euros|Euros</strong>
我想删除<strong> contains $|euros|Euros</strong>
So far I have: 到目前为止,我有:
preg_replace('#<strong>.*?(^<strong>).*?(\$|euros|Euros|EUROS).*?</strong>#is', '', $result);
but it is not working... I was trying also negative lock head (?!) but still not working... 但它不起作用......我还在尝试负锁头(?!)但仍然不能正常工作......
Any help? 有帮助吗? Thanks 谢谢
假设您希望欧元之前有两个强势,我认为这可能是您想要的: preg_replace('#^<strong>.*?<strong>.*?(\\$[euros|Euros|EUROS]).*?</strong>#is', '', $result);
You can try this, must use 'Dot-All' modifier or substitute [\\S\\s] - 你可以尝试这个,必须使用'Dot-All'修饰符或替换[\\ S \\ s] -
# <strong>(?:(?!\1)(?:\$|euros|Euros|EUROS)()|(?!<strong>).)+</strong>\1
<strong>
(?:
(?! \1 )
(?: \$ | euros | Euros | EUROS )
( )
|
(?! <strong> )
.
)+
</strong>
\1
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.