Javaでの正規表現の利用方法

いろいろなプログラミング言語で正規表現を利用することができますが、 Java から正規表現を利用するにはどのように行うのかについて簡単に解説します。より詳細な利用方法についてはこの後のページをそれぞれ参照されてください。

(Last modified: )

Patternオブジェクトを作成する

正規表現とは、対象となる文字列の中から指定した条件で目的の文字列を探したり、利用者から入力された値が指定した文字の種類やフォーマットに一致する値になっているかどうかを調べたい場合に使用します。例えば対象の文章に「good」という文字列が含まれているかを調べるのであれば別のメソッドが利用できますが、「g」から始まり「d」で終わる 4 文字の文字列が含まれているかを調べるには正規表現を利用するのが便利です。

このとき、どのような文字列を探すのかを定義したものがパターンです。パターンを定義するには、まず正規表現で用意されている特別な文字や構文を使ってパターンを表す文字列を記述します。例えば「g」で始まり「d」で終わる 4 文字の文字列を表すパターンは次のような文字列として表現できます。

"g..d"

正規表現ではドット(.)は任意の 1 文字を表します。これで「good」だけでなく「g27d」や「gxxd」など「g」で始まり「d」で終わる4文字の文字列とマッチします。

パターンを表す文字列を元に実際に使用するパターンである Pattern オブジェクト( Pattern クラスのインスタンス)を作成します。作成するには compile メソッドを使って次のように記述します。

import java.util.regex.*;  // java.util.regex.*のインポートが必要です

String regex = "g..d";
Pattern p = Pattern.compile(regex);

これで Pattern オブジェクトを作成することができました。

文字列とパターンがマッチするかどうかを調べる

次に対象となる文字列がパターンとマッチするかどうかを調べます。なおマッチするというのは、対象の文字列がパターンと一致する場合のことを正規表現ではマッチすると呼びます。

対象の文字列がパターンとマッチするかどうかを調べるにはいくつか方法がありますが、 Matcher オブジェクト( Matcher クラスのインスタンス)を作成するのが一般的です。作成するには Pattern クラスの matcher メソッドを使って次のように記述します。

import java.util.regex.*;

Pattern p = Pattern.compile("g..d");
Matcher m = p.matcher("good");

これで Matcher オブジェクトを作成することができました。

引数にはマッチするかどうか調べる対象の文字列である "good" を指定しています。

最後に Matcher オブジェクトを使ってパターンと対象の文字列がマッチするかどうかを調べます。対象の文字列全体がパターンとマッチしているかどうか調べるには、 Matcher クラスの matches メソッドを使って次のように記述できます。

import java.util.regex.*;

Pattern p = Pattern.compile("g..d");
Matcher m = p.matcher("good");

System.out.println(m.matches());  // true

対象の文字列がパターンとマッチしたので、結果として true を取得することができました。

正規表現を利用するにはパターンを具体的にどのように記述するか、そしてパターンが実際にどんな文字列にマッチするのかを知る必要があります。次のページ以降で順番に解説していきます。

-- --

Java から正規表現を利用するにはどのように行うのかについて簡単に解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。