- 締切済み
matches()での正規表現
現在、Stringクラスのmatchesメソッドを使用して、入力値のチェックをしようと思っているのですが、 正規表現で質問をさせてください。 正しいパターンは → 「00XX-XX」です。(Xは任意の数字) 頭は0が2個、Xが2個、ハイフン、Xが2個、です。 これを正規表現で表すと、 「^(00)\\d{2}\\-\\d{2}$」としているのですが、ハイフンの前の\\を除去して、 「^(00)\\d{2}-\\d{2}$」でも結果が変わらない様な気がします。 この二つの違いは何なのでしょうか?? 具体的にどちらかがtrueとなる入力値等があったら教えてください。 よろしくお願いします。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tacosan
- ベストアンサー率23% (3656/15482)
回答No.1
推測するに, 「正規表現」と書かれているのは「その正規表現を表す文字列」ということでしょうか? 本当に「正規表現」であれば異なりますが, 「正規表現を表す文字列」であれば通常は同じ意味になります. エスケープシーケンスとして意味のない \ は無視されることが普通で, おそらくその結果として \- と - が同じとみなされているのでしょう. ところで (00) とかっこを付けているのはなぜ?