在PHP中使用regex删除html中的所有内容<;a>;标签

在PHP中使用regex删除html中的所有内容<;a>;标签,php,regex,Php,Regex,我有以下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" on

我有以下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;
$originalStr='开始中间端

'; $pattern='~(.*)~'; $newStr=preg_replace($pattern,,$originalStr); echo$newStr;
预期结果:

<b><p>start middle end</p></b>
开始中间端

实际结果:

<b><p>start end</p></b>
开始-结束


有人能帮我写正确的正则表达式以达到预期的结果吗?谢谢。

将正则表达式更改为ungreedy:添加U修饰符

$pattern = '~<a(.*)>(.*)</a>~U';
$pattern='~(.*)~U';

应该可以满足您的需要。

将正则表达式更改为ungreedy:添加U修饰符

$pattern = '~<a(.*)>(.*)</a>~U';
$pattern='~(.*)~U';

应该适合您的需要。

哪里是
U
修饰符?哪里是
U
修饰符?