<?php
$aaa='
<a onclick="_fdsfsdkfd" target="fdsfsdd">000000000000</a>
<a href="fdsfsd" onclick="_fdsfsdkfd" target="fdsfsdd"></a>
';
echo preg_replace('/<a[^>]+?(href=".*?")?[^>]+?>/ims','<a $1 target="_blank">',$aaa);
?>
传统的.*?无法处理标签边界的问题,还需要^排除符号进行匹配。
注意:编写代码时href=""后面要加一个空格,否则无法正常解析。