0

不要なスパムクエリをフィルタリングするためにpreg_matchを実行しようとしていますが、preg_matchにリストされている単語を照合し、その後にスペースがない場合はフィルタリングしたいと思います。

たとえば、preg_matchにballoonという単語がある場合、「balloon1」、「balloond」、「balloonedfbdg」などをフィルタリングして、「balloon big」、「balloonsmall」などのバルーンの後にスペースがあるものを許可します。 。

私はグーグルから一言を取り、それにフィルターをかけたいたくさんのがらくたを追加するたくさんのクエリを持っています。ほんの一言ですが、ここに来てこれを修正するための答えを見つけるのは私にとって十分に苛立たしいことです。

正規表現を使用する一部のスパムクエリにpreg_matchをすでに使用していますが、間隔が空いていないものを照合し、スペースがあるものを許可する方法がわかりません。

どんな助けでもありがたいです、ありがとう。

4

1 に答える 1

1

あなたの表現:/(balloon|otherwordone|othertwo)[^\s]/i

空白 (\s) が後に続かない場合、これはリストされた単語と一致します。

編集:使用\B(単語境界ではない):

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

これにより、一般的な文の記号 (ドット、コンマなど) が正規表現をトリガーするのを防ぎます。

于 2012-05-08T04:38:47.097 に答える