PHP preg_replace&符号

时间:2012-09-05 19:20:09

标签: php regex preg-replace

好吧,我可能不会以正确的方式解决这个问题,但是这里......

我有这个字符串,它接受一个链接并在标签之间提取文本......

$string = $item;
$pattern = '/\<a([^>]*)\>([^<]*)\<\/a\>/i';
$replacement = '$2';
$message = preg_replace($pattern, $replacement, $string);

此字符串中有一些项目有&符号(在文本部分,而不是标记部分),但大多数项目没有。我试图找出一种方法,将&符号合并到当前模式中,或者在$message上执行另一个preg_replace,以便在标记条带化后删除&符号。

谢谢!

2 个答案:

答案 0 :(得分:7)

始终有$message = str_replace('&', '', $message);

顺便提一下,如果您尝试从html输入中删除标记,还有strip_tags

例如,如果您的输入是

$text = '<a href="google.com">Text</a>';

然后strip_tags($text)将生成Text

答案 1 :(得分:2)

你想删除&符后的所有内容吗?那就是

'/\<a([^>]*)\>([^<&]*)[^<]*\<\/a\>/i';

否则,您需要进行第二次操作。

BTW:您的正则表达式还会匹配以<a开头的其他代码,例如<author><audio>代码。