我正在尝试进行此正则表达式匹配并替换但无法执行此操作。
实施例
<a href=one target=home>One</a>
<a href=two>Two</a>
<a href=three target=head>Three</a>
<a href=four>Four</a>
<a href=five target=foot>Five</a>
我想找到每个标签的集合并替换为这样的
查找
<a href=one target=home>One</a>
更改为
<a href='one'>One</a>
与标签的其余部分相同。
非常感谢任何帮助!
答案 0 :(得分:5)
使用DomDocument()
可以更轻松地使用HTML。
<?php
$str = '<a href=one target=home>One</a>
<a href=two>Two</a>
<a href=three target=head>Three</a>
<a href=four>Four</a>
<a href=five target=foot>Five</a>';
$dom = new DomDocument();
$dom->loadHTML($str);
$anchors = $dom->getElementsByTagName('a');
foreach ($anchors as $a)
{
if ($a->hasAttribute('target'))
{
$a->removeAttribute('target');
}
}
$str = $dom->saveHTML();
答案 1 :(得分:1)
使用此:
preg_replace('/<a(.*)href=(")?([a-zA-Z]+)"? ?(.*)>(.*)<\/a>/', '<a href='$3'>$5</a>', '{{your data}}');
答案 2 :(得分:0)
如果你想要一个正则表达式,试试这个:
$str = preg_replace('/<a [^>]*href=([^\'" ]+) ?[^>]*>/',"<a href='\1'>",$str);
我不建议使用正则表达式来执行此操作。