次の状況に一致する正規表現を使用してスパムフィルターを作成しようとしています。
- 一致する正確に8文字の英数字のグループがあります。
- 2つ以上の大文字が含まれている必要があります。
- また、2つ以上の小文字が含まれている必要があります。
- また、1つ以上の数字が含まれている必要があります。
これまでのところ、私が思いついたのはこれだけです。
(?i)[A-Za-z0-9]{8}
私のコードは8の混合大文字小文字グループに一致しますが、大文字または小文字を強制したり、各タイプが発生する必要がある回数を指定したりしません。それで、私はそれを問題のメッセージに常に存在する他の必需品と組み合わせます。
これが私が検出しようとしているパターンのサンプルです:
WbNDSk9e
これはスパムURLの一部です。私が見た他のグループは、少なくとも2つの各UCおよびLC文字と1つ以上の数字の同じパターンに従い、常に正確に8文字です。他のキャラクターやバリエーションはまだ見ていません。
私の知る限り、使用できる唯一のスイッチは、大文字と小文字の区別を(?i)でオンにすることです。一部の返信で見た他のスイッチの一部は、使用しているプログラムでは機能しません。1行のRegExprルールから質問しすぎていませんか?
現在、RegEx Matchを使用してルールをテストしていますが、スパム対策プログラムは同じエンジンを使用しています。