0

我正在尝试做一个 preg_match 来过滤不需要的垃圾邮件查询,我想匹配 preg_match 中列出的任何单词,如果它后面没有空格则过滤它。

因此,例如,如果我在 preg_match 中有单词 balloon,那么我想过滤诸如“balloon1”或“balloond”或“balloonedfbdg”之类的任何内容,并允许在诸如“balloon big”、“balloon small”之类的气球后面有空格的任何内容.

我有很多来自谷歌的查询,它们只需要一个词,然后添加一大堆我想过滤掉的废话。这只是几句话,但让我很恼火的是来到这里并找到解决这个问题的答案。

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

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

4

1 回答 1

1

你的表达:/(balloon|otherwordone|othertwo)[^\s]/i

如果后面没有空格 (\s),则与列出的单词匹配

编辑:使用\B(不是单词边界):

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

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

于 2012-05-08T04:38:47.097 回答