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

php – 删除属性内的标签

发布时间:2020-12-13 16:05:41 所属栏目:PHP教程 来源:网络整理
导读:我有这个传递给Text_Diff的字符串… ?php$left_string = 'div class="class1" style="display:block;"Some Textdel Orig/del/div';$right_string = 'div class="class1" style="inscolor:#FFF;/ins;display:block;"Some Text/div'; 只有两个可能的标签:del
我有这个传递给Text_Diff的字符串…

<?php
$left_string = '<div class="class1" style="display:block;">Some Text<del> Orig</del></div>';
$right_string = '<div class="class1" style="<ins>color:#FFF;</ins>;display:block;">Some Text</div>';

只有两个可能的标签:del和ins.如果它们不在标签内,我不会删除这些标签.但是当它们属于内部属性时需要删除它们.

解决方法

您可以使用以下正则表达式来使用搜索:

(?<=style=)([wW]+)(?:<ins>|<del>)([wWs]+)(?:</ins>|</del>)([wW]*)(?=">)

属性的值是与后向链接匹配的文本:

([wW]+) == $1

([wWs]+) == $2

([wW]*) == $3

然后,此组合将为您提供属性所需的值:

$1$2$3

对于此输入字符串:

<div class="class1" style="display:block;">Some Text<del> Orig</del></div>

你会得到结果:

< div class =“class1”style =“display:block;”> Some Text< del>原稿< /德尔>< / DIV>

对于此输入字符串:

< div class =“class1”style =“< ins> color:#FFF;< / ins&gt ;; display:block;”> Some Text< / div>

你会得到结果:

< div class =“class1”style =“color:#FFF ;; display:block;”> Some Text< / div>

对于此输入字符串:

< div class =“class1”style =“; display:block;< ins> color:#FFF;< / ins>”> Some Text< / div>

你会得到结果:

< div class =“class1”style =“; display:block; color:#FFF;”> Some Text< / div>

请参见此处的演示:https://regex101.com/r/3XKv5s/1

对于任何属性,不仅是样式:

(?<=[a-zA-Z]=")([wW]*)(?:<ins>|<del>)([wWs]*)(?:</ins>|</del>)([wW]*)(?=">)

请参见此处的演示:https://regex101.com/r/3XKv5s/2

(编辑:李大同)

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

    推荐文章
      热点阅读