以下是示例html
<div>
<span class="target"> Remove parent span class only and save this text </span>
</div>
这里我想要html如下,仅使用正则表达式函数
<div>
Remove parent span class only and save this text
</div>
我试过这个:
$html = preg_replace('#<h3 class="target>(.*?)</h3>#', '', $html);
但它不起作用。
答案 0 :(得分:1)
您匹配错误的标记,h3而不是span 同时检查preg_replace的签名,第二个参数是替换,在你的情况下它是空字符串。
$html = preg_replace('/<(span)[^\>]+>(.*?)<\/\1>/i', '\2', $html);
编辑: 刚注意到op只想删除具有特定类
的跨度$html = preg_replace('/<(span).*?class="\s*(?:.*\s)?target(?:\s[^"]+)?\s*"[^\>]*>(.*)<\/\1>/i', '\2', $html);
这应涵盖具有任意数量属性和类的跨度,并替换具有类目标的跨度。