文字列全体が正規表現パターンとマッチするか調べる

String クラスで用意されている matches メソッドを使用すると、対象の文字列全体が正規表現パターンとマッチするかどうかを調べることができます。ここでは Java で文字列全体が正規表現パターンとマッチするか調べる方法について解説します。

(Last modified: )

String.matchesメソッドの使い方

正規表現を利用して対象の文字列全体がパターンとマッチするかどうかを調べるには String クラスの matches メソッドを使います。書式は次のとおりです。

public boolean matches(String regex)

パラメータ:
regex - この文字列との一致を判定する正規表現

戻り値:
この文字列が指定された正規表現と一致する場合にだけ、trueが返される

例外:
PatternSyntaxException - 正規表現の構文が無効な場合

1 番目の引数に正規表現パターンを指定します。パターンが文字列全体とマッチする場合は戻り値として true が返ります。

次のサンプルを見てください。

String str = "Apple";
String regex = "A.*e";
System.out.println(str.matches(regex));  // true

文字列 "Apple" は正規表現パターン "A.*e" とマッチするため戻り値として true が返りました。なお "A.*e" は A で始まり任意の文字が 0 回以上続き、 e と続く文字列とマッチするパターンです。

なお String クラスの matches? メソッドは、 Matcher クラスの matches メソッドを使用した場合と同じです。 Java における正規表現の使用方法について詳しくは「Java正規表現の使い方」を参照されてください。

サンプルコード

それでは簡単なサンプルプログラムを作って試してみます。テキストエディタで次のように記述したあと、 JSample19-1.java という名前で保存します。

class JSample19_1{
  public static void main(String[] args){
    String str1 = "airplane.png";
    String str2 = "lemon.png";
    String str3 = "apple.jpeg";
    String regex = "a.+png$";

    System.out.println(str1.matches(regex));
    System.out.println(str2.matches(regex));
    System.out.println(str3.matches(regex));
  }
}

コンパイルを行います。

javac -encoding UTF-8 JSample19_1.java

その後で、次のように実行してください。

java JSample19_1

String.matchesメソッドの使い方(1)

今回は a から始まり、任意の文字が 1 回以上続き、 png が続く文字列とマッチするパターンを定義しました。 3 つの文字列に対してそれぞれ matches? メソッドを実行し、最初の文字列だけがパターンとマッチしました。

-- --

Java で指定した区切り文字で複数の文字列を連結し新しい文字列を作成する方法について解説しました。

( Written by Tatsuo Ikura )

プロフィール画像

著者 / TATSUO IKURA

これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。