加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php正则表达式匹配html标签之外

发布时间:2020-12-13 13:09:29 所属栏目:PHP教程 来源:网络整理
导读:我正在html页面上创建一个preg_replace.我的模式旨在为html中的某些单词添加周围标记.但是,有时我的正则表达式会修改html标记.例如,当我尝试替换此文本时: a href="example.com" alt="yasar home page"yasar/a 因此,yasar读取 span class =“selected-word
我正在html页面上创建一个preg_replace.我的模式旨在为html中的某些单词添加周围标记.但是,有时我的正则表达式会修改html标记.例如,当我尝试替换此文本时:
<a href="example.com" alt="yasar home page">yasar</a>

因此,yasar读取< span class =“selected-word”> yasar< / span>,我的正则表达式也替换了锚标记的alt属性中的yasar.我正在使用的当前preg_replace()看起来像这样:

preg_replace("/(asf|gfd|oyws)/",'<span class=something>${1}</span>',$target);

如何制作正则表达式,使其与html标签内的任何内容都不匹配?

你可以使用断言,因为你必须确保搜索的单词出现在>之后,或者在任何<之前.后一个测试更容易实现,因为前瞻断言可以是可变长度:
/(asf|foo|barr)(?=[^>]*(<|$))/

有关该断言语法的一个很好的解释,另请参见http://www.regular-expressions.info/lookaround.html.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读