Javaで正規表現

Javaで正規表現

JavaJavaで正規表現

Java で携帯電話番号の特定の帯域を調べる為に、パターンマッチングをしてみた。今回、利用したのは java.util.regex.Pattern です。

Pattern の matches メソッドで簡単に実装できるのが特徴ですが、繰り返しチェックする場合は、Pattern の compile メソッドで予め正規表現をインスタンスにコンパイルしておくと効率がいいみたいです。

実際に、0901234 から始まる携帯電話番号を判定したい場合、「^0901234*」のパターンでマッチすると思い込んでいたのですが、どうやらシェルが特殊なだけで、一般的にはマッチしないみたい。

Pattern.matches("^0901234*", "09012345678"); // false

一般的な正規表現だと「^0901234.*」になります。

Pattern.matches("^0901234.*", "09012345678"); // true

シェル(grepとか)の正規表現を標準として考えていたので、危ない道に進むところでした。あとは、正規表現で使う「$ や \」などを文字列として扱いたい場合はエスケープすることも忘れずに。

最終更新日:

関連記事

人気記事

新着情報