当我查看我的本地主机页面时,我有此HTML行
<a class="moz-txt-link-abbrevi=ated" href="http://www.test.com">Test</a>
我要删除
<a class="moz-txt-link-abbrevi=ated" href=3D"http://www.test.com">
几乎所有的preg都将
<a
和>
之间的所有内容替换为空,因为最后我将用字符串replace删除</a>
,并且由于该类中的href总是不同,所以我无法字符串替换该类。我已经试过了
$outputstr = preg_replace('/<a[^>]*>.*?<\/a>/', '', $outputstr);
但是,然后,当然,我的整个行消失了,因为它删除了
<a
到</a>
之间的所有内容,而我所需要的只是没有类标记的内容。谁能指出我正确的方向?
我试过使用
$outputstr = str_replace('</a>','',$outputstr);
取出我最后的</a>
然后
$outputstr = preg_replace('/<a[^>]*.*?\/>/', '', $outputstr);
希望删除
<a class=3D"moz-txt-link-abbrevi=ated" href=3D"http://www.test.com">
任何帮助,将不胜感激!
最佳答案
您最初的尝试几乎是正确的。现在唯一需要做的是:为内容创建一个捕获组,然后使用对该组的后向引用作为替换:
$outputstr = preg_replace('/<a[^>]*>(.*?)<\/a>/', '$1', $outputstr);
请注意内容周围的圆括号。这将创建一个捕获组。在替换中,您将此捕获组称为
$1
。关于php - 使用preg_replace PHP删除其中的标签和元素,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52834783/