2012-05-08 128 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

相關問題