0

因此,在一些浏览 stackoverflow 的可爱人士的帮助后,我得到了一个正则表达式来删除人们发布的链接。现在,我想我想找到一个删除他们整个帖子的人,也许用“”,所以我的表格不允许这个帖子。(而不是嘿,在 [LINK REMOVED] 上查看我的网站。这太棒了,但如果它删除整个句子而不仅仅是链接可能会更好。)我对正则表达式 atm 很糟糕,所以任何帮助将不胜感激!

这是我当前的正则表达式:

$a = $_POST['msge'];
$b = preg_replace('%[a-zA-Z0-9\-\.]+\.(com|org|net|mil|edu|COM|ORG|NET|MIL|EDU)%', '[LINK REMOVED]', $a);

有任何想法吗?

4

1 回答 1

1

有更好的方法可以在字符串中查找链接,这是在这个相关问题中给出的 Perl示例。如果您坚决使用正则表达式,则在另一个相关问题中提到了一点,并且看起来比您当前正在尝试的更有希望。

如果您想替换给定链接的整个句子,您可以使用以下内容:

[^.|^!|^?]*(link)[^.|^!|^?]*[.|!|?]

显然,您想用您的链接模式匹配替换链接。

主观上我还建议从人们发布的内容中间删除整个句子可能有点奇怪,因为它可能会改变帖子的整个含义。如果您的主要目的是删除链接(例如,防止垃圾邮件反向链接),您可能只想通过将链接替换为 -LINK- 之类的明显内容来混淆链接。

于 2012-07-23T01:24:45.747 回答