当我查看我的本地主机页面时,我有此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/

10-10 09:01