2017-01-26 11 views
-1

私は、パスワードの検証に使用されるこの正規表現に出くわした:パスワード検証のための正規表現での使用は

    :この正規表現について私に不明確であるたった2つのものがあります
    (?=.*[a-z])(?=.*[A-Z])(?=.*[\d])(?=.*[^a-zA-Z\d])(?=\S+$).{8,} 
    

  1. .*は何のために使用されていますか?なぜ、この正規表現は使用できないのですか?

  2. は、正規表現は、両方のケースでうまく動作するため

+0

このページの右側の列に、https://regex101.com/r/WZ0K1c/1が表示されます –

答えて

1
  1. .*は、任意の文字列にマッチし、差異/利益または[\d]の代わり\dを使用するものです。 .は任意の文字(ここでは関係のない改行以外)に一致し、*は前のパターンと0以上一致します。これは、先読みでパスワード内のどこでも一致するものを検索するために使用されます。あなたがそれを持っていなければ、あなたは特定の順序でそれらのタイプの文字を持っていることを要求するでしょう:小文字の後に大文字とそれに続く桁が続きます。 .*の場合、パスワードには少なくとも1つは含まれていなければなりませんが、パスワードのどこにでも置くことができます。

  2. \d[\d]の間に違いはありません。誰でもこれを書いているだけで、括弧を使って癖をつけたり、他の文字を文字クラスに入れやすくするために修正することができます。

関連する問題