用正则表达式构造匹配:
密码必须由数字、字符、特殊字符三种同时存在组成;
密码长度不能少于8个字符;
学习是最好的投资!
リーリー
検証後、@BodhiXuguang の答えは間違っています。たとえば、hello123 は一致しますが、要件を満たしていません。また、 8 個のスペースも一致しますが、要件を満たしていません。すべての特殊記号を追加する方法はありません。
hello123
(?=[a-zA-Z0-9_#@]+) を追加して、パスワードに指定されたもの以外の特殊記号が含まれないようにすることはできますが、パスワードに 3 つの記号が含まれている必要があるという保証はありません。
(?=[a-zA-Z0-9_#@]+)
すべての数字/文字/特殊記号ではなく、2 種類以上の記号が含まれていれば結果が得られます。
実際、これは通常の質問ではありません。同様の質問を参照してください
6 つの状況をすべてリストします
@BodhiXuguang のアイデアは正しいです。否定的な先読みを肯定的な先読みに置き換えて、いくつかの調整を加えます。 (?=.d.)(?=.[a-zA-Z].)(?=.[_#@].).{8,}
この問題は正規表現で解決すべきではないと思います。各ツールには、使用に適した独自のシナリオがあります。シナリオ内で正規表現を使用して解決するのは適切ではないと思います。 . 判定は実装が簡単で非常に読みやすいのですが、なぜ正規表現を使用する必要があるのでしょうか。 ?
リーリー
検証後、@BodhiXuguang の答えは間違っています。たとえば、
8 個のスペースも一致しますが、要件を満たしていません。すべての特殊記号を追加する方法はありません。
hello123
は一致しますが、要件を満たしていません。また、(?=[a-zA-Z0-9_#@]+)
を追加して、パスワードに指定されたもの以外の特殊記号が含まれないようにすることはできますが、パスワードに 3 つの記号が含まれている必要があるという保証はありません。すべての数字/文字/特殊記号ではなく、2 種類以上の記号が含まれていれば結果が得られます。
実際、これは通常の質問ではありません。同様の質問を参照してください
6 つの状況をすべてリストします
@BodhiXuguang のアイデアは正しいです。否定的な先読みを肯定的な先読みに置き換えて、いくつかの調整を加えます。
(?=.d.)(?=.[a-zA-Z].)(?=.[_#@].).{8,}
この問題は正規表現で解決すべきではないと思います。各ツールには、使用に適した独自のシナリオがあります。シナリオ内で正規表現を使用して解決するのは適切ではないと思います。 . 判定は実装が簡単で非常に読みやすいのですが、なぜ正規表現を使用する必要があるのでしょうか。 ?