固定電話番号のバリデーションをしたい時。
「正規表現さん、お呼びですよー」となるわけです。
しかし、とっさに思いつく正規表現が
String phoneNumberRegex = "\\d{2,4}-\\d{2,4}-\\d{4}";
だったりして、自分の安直さを悲しく思ったりするわけです。
で、「じゃ、キチンと書くとどうなるんだよ?ああ?」という話になるわけですが、
世の中にはすごい人がいるものです。
総務省のホームページから正確なデータを引っ張ってきて自動生成している模様です。
まるでメールアドレスの正規表現を見た時のようなインパクト。
String phoneNumberRegex = "(?!(?:090|080|070)-)\\d{2,5}-\\d{1,4}-\\d{4}|" + //"090-", "080-", "070-"で始まるものを除外 "0120-\\d{2,3}-\\d{3,4}|" + "0800-\\d{3}-\\d{4}";