巴扎黑2017-04-18 09:09:48
検証後、@BodhiXuguang の答えは間違っています。たとえば、hello123
は一致しますが、要件を満たしていません。また、
8 個のスペースも一致しますが、要件を満たしていません。すべての特殊記号を追加する方法はありません。
(?=[a-zA-Z0-9_#@]+)
を追加して、パスワードに指定されたもの以外の特殊記号が含まれないようにすることはできますが、パスワードに 3 つの記号が含まれている必要があるという保証はありません。
すべての数字/文字/特殊記号ではなく、2 種類以上の記号が含まれていれば結果が得られます。
実際、これは通常の質問ではありません。同様の質問を参照してください
伊谢尔伦2017-04-18 09:09:48
@BodhiXuguang のアイデアは正しいです。否定的な先読みを肯定的な先読みに置き換えて、いくつかの調整を加えます。
(?=.d.)(?=.[a-zA-Z].)(?=.[_#@].).{8,}
迷茫2017-04-18 09:09:48
この問題は正規表現で解決すべきではないと思います。各ツールには、使用に適した独自のシナリオがあります。シナリオ内で正規表現を使用して解決するのは適切ではないと思います。 . 判定は実装が簡単で非常に読みやすいのですが、なぜ正規表現を使用する必要があるのでしょうか。 ?