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