javaの正規表現matchesに関して質問です。 正規表現を用いて文字列が半角数字のみで出来ているかどうかを判定したいと思っています。 調べたとろこ下記の正規表現で判定できそうなのですが、 正規表現のルールが理解できず困っています。 ------------------------------------------- String aaa = "0123456789"; //パターン1 aaa.matches("^[0-9]{10,11}$"); //パターン2 aaa.matches("^[0-9]+$") ------------------------------------------- パターン1 ^[0-9] → 文字列の先頭が0~9か判定 {10,11} → 10~11回繰り返す(繰り返すというのは[0-9]かどうかということでしょうか?) 12文字目に文字を入れた下記文字列でもfalseが返ってきました。 解釈が間違えている? String aaa = "0123456789a"; $ → 文字列の最後が[0-9]を10~11回繰り返しているかどうか? パターン2 ^[0-9] → 文字列の先頭が0~9か判定 +$ → 文字列の最後が???? すいません自分で書いてて混乱してきました。 どなたかアドバイス下さい。
↧