0

パスワードの検証に正規表現を使用しています。この正規表現は私が作成したものではありません..

 public final Pattern PASSWORD = Pattern.compile("[(?=.*[a-zA-Z])]"
                + "[(?=.*d)]" + "[(?=.*[^a-zA-Z0-9s])]" + "[.{6s,}]");

6文字の長さ、1つの数字、1つの大文字のパスワードの正規表現を作成しようとしています

正規表現の読み方がわかりません... 正規表現を学習するためのチュートリアルをいくつか提案し、パターン PASSWORD は私の条件を満たしていますか..そうでない場合、正規表現にどのような変更を加える必要がありますか

4

4 に答える 4

3

最初にグーグルで調べたのは、正規表現を使用してパスワードを検証する例を示しています: http://www.mkyong.com/regular-expressions/how-to-validate-password-with-regular-expression/

于 2012-08-02T14:51:18.237 に答える
3

[...]主な問題は、式の周りに文字クラスがあることです。これはうまくいくかもしれません:

"^(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[^a-zA-Z0-9\\s]).{6,}"

私もとに変更dしました。\\ds\\s

これの意味は:

(?=.*[a-zA-Z]) [a-zA-Z] の少なくとも 1 文字
(?=.*\d) 少なくとも 1 桁。
(?=.*[^a-zA-Z0-9\s]) [a-zA-Z0-9\s] にない少なくとも 1 文字
.{6,} 6 文字以上。
于 2012-08-02T14:52:12.933 に答える
1

これを 1 行にまとめてみてください。

((?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{6,})

これが役立つと思います。

于 2012-08-02T15:02:19.963 に答える
0

あなたがそこに何を持っていても、それはとても、とても奇妙です。コメントで Pshemo が指摘したようなチュートリアルの方がはるかに適しているため、ここではあまり詳しく説明しません。

あなたの要件のためにあなたが使用することができます

^(?=.*[A-Z])(?=.*\d).{6}$
 ↑          ↑       ↑
 │          │       six characters in total
 │          at least one digit
 at least one upper-case letter
于 2012-08-02T14:53:40.313 に答える