我需要根据以下规则对我的 html 页面属性标题中的每个链接执行正则表达式:
- 链接等于锚文本。
- 该链接没有标题属性。
我写了这段代码:
$x = 'gg <a href="#">Anchor 1</a>, <a href="#" title="text">Anchor 2</a>';
echo preg_replace('/\<a([^<]*)(?!title)>([^<]+)\<\/a/isu', '<a${1} title="${2}">${2}</a', $x);
但我得到了这个意想不到的结果:
gg <a href="#" title="Anchor 1">Anchor 1</a>, <a href="#" title="text" title="Anchor 2">Anchor 2</a>
第二个链接有 2 个标题属性。为什么这不能按预期工作?我该如何解决?