0

私は Django ベースのフォーラムを運営しており (フレームワークはおそらく質問にとって重要ではありませんが、それでも)、特定の Web サイト (www.solidwoodkitchen.co.uk - これらの人々は明らかに最悪)。

Web サイトの URL が投稿に含まれている場合にフォーラムへの投稿を停止する文字列ブロック システムを実装しましたが、スパム ボットが通常行うように、URL を他の文字で分割することでそれを回避する方法を見つけました。 (例: w_w_w.s*olid_wood*kit_ch*en._*co.*uk .)。いくつか質問があります:

  1. そのように変更された場合でも、テキストのブロック内で特定の URL を見つけることができる正規表現を構築することさえ可能ですか?
  2. もしそうなら、これはパフォーマンスの低下を引き起こしますか?
4

1 に答える 1

1

説明

URL を文字列に分割し、[^a-z0-9]*?. したがって、この場合www.solidwoodkitchen.co.uk、結果の正規表現は次のようになります。

w[^a-z0-9]*?w[^a-z0-9]*?w[^a-z0-9]*?[.][^a-z0-9]*?s[^a-z0-9]*?o[^a-z0-9]*?l[^a-z0-9]*?i[^a-z0-9]*?d[^a-z0-9]*?w[^a-z0-9]*?o[^a-z0-9]*?o[^a-z0-9]*?d[^a-z0-9]*?k[^a-z0-9]*?i[^a-z0-9]*?t[^a-z0-9]*?c[^a-z0-9]*?h[^a-z0-9]*?e[^a-z0-9]*?n[^a-z0-9]*?[.][^a-z0-9]*?c[^a-z0-9]*?o[^a-z0-9]*?[.][^a-z0-9]*?u[^a-z0-9]*?k

正規表現イメージ

Debuggex でライブ編集

これは基本的に、0 個以上の英数字以外の文字で区切られた文字列全体を検索できます。

または、入力テキストからすべての句読点を取り除き、単純に を検索することもできますwwwsolidwoodkitchencouk

于 2013-05-31T04:39:37.503 に答える