【发布时间】:2012-07-20 21:23:35
【问题描述】:
我似乎找不到任何像样的简单正则表达式来删除垃圾邮件链接。我正在尝试的一个作品,但前提是 www.example.com 旁边没有句号和另一个句子。 我有一本关于正则表达式的好书,但根本没有时间在 atm 学习所有内容。
这是我正在使用的正则表达式。老实说,我不确定我是否做得对。
$a = $_POST['msge'];
$b = preg_replace('^[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)$^', '[LINK REMOVED]', $a);
print $b;
所以,我想知道的是,如果代码看起来正确,是否有人有更好的正则表达式可供我使用?
【问题讨论】:
-
您要删除 any 链接吗?或者是否有一个特殊的规则来确定哪些链接是垃圾链接,哪些链接是火腿?
-
您的正则表达式当前仅在链接位于文件末尾时才找到链接(因为
$锚点)。此外,您最好不要使用^作为正则表达式分隔符,因为这是正则表达式中的重要元字符。如果您不想使用标准的/,最好使用~或%。 -
是的,我想删除任何链接,我的表单上不允许出现任何链接。
-
哦,谢谢蒂姆!它现在完美运行。你是上帝!
-
小心,正则表达式不会找到大量有效链接。
标签: regex url preg-replace