次のルールに基づいて、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 番目のリンクには、2 つのタイトル属性があります。これが意図したとおりに機能しないのはなぜですか? どうすれば修正できますか?