Javaで正規表現
※実経験の記憶を頼りに自宅の PC 環境(VMWareなど)で再現している内容もあるのでご注意下さい
2007-10-20
Java で携帯電話番号の特定の帯域を調べる為に、パターンマッチングをしてみた。今回、利用したのは java.util.regex.Pattern です。
Pattern の matches メソッドで簡単に実装できるのが特徴ですが、繰り返しチェックする場合は、Pattern の compile メソッドで予め正規表現をインスタンスにコンパイルしておくと効率がいいみたいです。
実際に、0901234 から始まる携帯電話番号を判定したい場合、「^0901234*」のパターンでマッチすると思い込んでいたのですが、どうやらシェルが特殊なだけで、一般的にはマッチしないみたい。
Pattern.matches("^0901234*", "09012345678"); // false
一般的な正規表現だと「^0901234.*」になります。
Pattern.matches("^0901234.*", "09012345678"); // true
シェル(grepとか)の正規表現を標準として考えていたので、危ない道に進むところでした。あとは、正規表現で使う「$ や \」などを文字列として扱いたい場合はエスケープすることも忘れずに。
関連記事
上記の記事に関連する記事(最新の10件)です。


