2012-05-08 251 views
0

我正在尝试执行preg_match来过滤不想要的垃圾邮件查询,并且希望匹配preg_match中列出的任何单词,并在它之后没有空格时对其进行过滤。因此,例如,如果我在preg_match中有气球这个词,那么我想过滤像“balloon1”或“balloond”或“balloonedfbdg”等任何东西,并允许任何与气球之后的空间类似的“气球大”,“气球小“等正则表达式以匹配没有空格的单词

我有很多来自谷歌的查询,采取一个单词,并添加一大堆废话,我想过滤掉。这只是几句话,但足以让我感到恼火,足以来到这里找到解决问题的答案。

我已经对一些使用正则表达式的垃圾邮件查询使用了preg_match,但我不知道如何匹配没有间隔的东西,并允许有空间的东西。

任何帮助表示赞赏,谢谢。

回答

1

你的表达:使用\B(而不是字边界):

/(balloon|otherwordone|othertwo)[^\s]/i

如果他们不 +空格(\ S)

编辑该上市词相匹配

/(balloon|otherwordone|othertwo)\B/i 

这可以防止触发正则表达式的常用句子符号(如点,逗号)。

+0

[^ \ s]似乎很好。这也使得它如此繁琐,因为仍然可以查询哪个单词是好的。谢谢。 – chris

+0

你也可以\ B(不是单词边界):'/(气球|其他)\ B /我',这可以防止“气球”,“气球”等匹配。 – ccKep

+0

很酷。我很欣赏这个。 – chris

相关问题