我有以下PHP代码:
$originalStr = '<p>start<a class="wt_article_link" onmouseover="WeiboCard.show(2789895193, \'sports\' , this)" href="http://weibo.com/u/2789895193?zw=sports" target="_blank">[x]</a> middle <a class="wt_article_link" onmouseover="WeiboCard.show(2094902981, \'sports\' , this)" href="http://weibo.com/u/2094902981?zw=sports" target="_blank">[微博]</a> end</p>';
$pattern = '~<a(.*)>(.*)</a>~';
$newStr = preg_replace($pattern, '', $originalStr);
echo $newStr;
预期结果:
<b><p>start middle end</p></b>
实际结果:
<b><p>start end</p></b>
有人能帮我写正确的正则表达式以达到预期的效果吗?感谢。
答案 0 :(得分:1)
将你的正则表达式改为ungreedy:添加U修饰符。
$pattern = '~<a(.*)>(.*)</a>~U';
应该能满足您的需求。