我想从我的脚本中删除以下类型的表达式。
<a any text here>nothing or space here</a>
我可以通过三个功能来实现,但我认为有一个更短的方法。 你可以帮帮我吗? 提前谢谢
答案 0 :(得分:2)
preg_replace('/<a(.*?)>\s*<\/a>/', '', $str)
会工作吗?
答案 1 :(得分:0)
取自http://www.regular-expressions.info/php.html:
mixed preg_replace (mixed pattern, mixed replacement, mixed subject [, int limit])
返回一个字符串,其中主题字符串中的正则表达式模式的所有匹配项都替换为替换字符串。
最多限制更换。一个关键的区别是除限制之外的所有参数都可以是数组而不是字符串。
在这种情况下,preg_replace
多次执行其工作,同时迭代数组中的元素。您还可以将字符串用于某些参数,将数组用于其他参数。然后函数将迭代数组,并为每次迭代使用相同的字符串。使用模式和替换的数组,允许您对单个主题字符串执行一系列搜索和替换操作。使用数组作为主题字符串,允许您对许多主题字符串执行相同的搜索和替换操作。
答案 2 :(得分:0)
$text = '<a any text here>nothing or space here</a>';
$rep = '';
$pat = '|<a[^>]*>\S*</a>|';
echo preg_replace($pat,$rep,$text);
编辑:错误的
$text = '<a any text here>nothing or space here</a>';
$rep = '<a>\1</a>';
$pat = '|<a[^>]*>([^<]*)</a>|';
echo preg_replace($pat,$rep,$text);