2012-05-08 21 views
0

preg_matchを実行して不要なスパムクエリをフィルタリングしようとしていますが、preg_matchにリストされている単語と一致するものを検索し、後ろにスペースがない場合はフィルタします。空白がない単語に一致する正規表現

たとえば、preg_matchにballoonという単語がある場合、「balloon1」や「balloond」や「balloonedfbdg」などのようなものをフィルタリングし、「balloon big」、「balloon big」、「balloon big」、 「バルーン小」など。

私はグーグルから1語を取り上げて、フィルタにかけたいと思っているたくさんの言葉を追加しています。それはほんの少しの言葉ですが、ここに来てこれを解決するための答えを見つけるのに十分なほど私を苛立たせています。

私はすでに正規表現を使っていくつかのスパムクエリにpreg_matchを使用していますが、スペースのないものとマッチングさせる方法やスペースがあるものを許可する方法はわかりません。

ご協力いただきありがとうございます。

答えて

1

あなたの式:彼らは空白(\ sの)に続いてないなら/(balloon|otherwordone|othertwo)[^\s]/i

これが記載されている言葉と一致する

編集:\B(ないワード境界)を使用して:

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

これは、一般的な文章記号が正規表現(例えば、ドット、カンマ)を引き起こさないようにします。

+0

[^ \ s]はうまくいくようです。これはまた、単一の言葉が依然として質の良いものであることを風船にします。ありがとう。 – chris

+0

「バルーン」、「バルーン」などが一致しないようにするには、\ B(単語境界ではない):/(バルーン| otherwordone | othertwo)\ B/i'を使用することもできます。 – ccKep

+0

Cool。私はこれに感謝します。 – chris

関連する問題