php正则表达式以匹配html标签之外
我在html页面上制作了preg_replace。我的模式旨在为html中的某些单词添加周围的标记。但是,有时我的正则表达式会修改html标签。例如,当我尝试替换此文本时:
<a href="example.com" alt="yasar home page">yasar</a>
这样yasar
读<span class="selected-
word">yasar</span>,我的正则表达式也锚标记的alt属性取代亚萨尔。当前preg_replace()
我正在使用的外观如下:
preg_replace("/(asf|gfd|oyws)/", '<span class=something>${1}</span>',$target);
如何制作正则表达式,使其与html标记内的任何内容都不匹配?
回答:
您可以为此使用断言,因为您只需要确保搜索到的单词出现在>
或之后,就可以了<
。由于前瞻性断言可以是可变长度的,因此后一种测试更容易实现:
/(asf|foo|barr)(?=[^>]*(<|$))/
以上是 php正则表达式以匹配html标签之外 的全部内容, 来源链接: utcz.com/qa/423069.html