Java java.util.regex パッケージの Matcher クラス

java.util.regex.Matcher クラスは、入力文字列のパターンを解釈し、指定されたパターンと一致するかどうかを判定するときに主に使用される。

Matcher メソッド

メソッド 説明
matches() パターンが文字列全体と一致する場合に true を返す。
boolean find() パターンが一致する場合に true を返し、その位置へ移動する。複数一致する場合は繰り返し実行できる。
boolean find(int start) start 位置以降からマッチ検索を行う。
String group() マッチした部分を返す。
String group(int group) マッチした部分のうち、group 番目のグループに該当する部分を返す。
int groupCount() パターン内でグループ化した(括弧で指定した)全体の数を返す。
int start() マッチする文字列の開始位置を返す。
int start(int group) 指定したグループがマッチする開始位置を返す。
int end() マッチする文字列の終了直後の文字位置を返す。
int end(int group) 指定したグループがマッチする終了直後の文字位置を返す。

Matcher の例

次のコードは、小文字で構成された単語だけを取得して表示するロジックである。たとえば Iit. のように大文字や特殊文字が含まれる場合は除外して表示する。

package com.devkuma.basic.matcher;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MatcherTutorial {
    
    public static void main(String[] args) {
        String regEx = "[a-z]*[a-z]";
        String text = "I never dreamed about success, I worked for it.";

        Pattern pattern = Pattern.compile(regEx);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

結果は次のとおりである。

never
dreamed
about
success
worked
for
it