Java : MatchResult (正規表現) - API使用例
MatchResult (Java SE 18 & JDK 18) の使用例まとめです。
だいたいのメソッドを網羅済みです。
API仕様のおともにどうぞ。
概要
MatchResultインタフェースは、Matcher による正規表現のマッチ操作の結果を表します。
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaaabc 345");
final var stream = matcher.results();
stream.forEach(matchResult -> {
System.out.println("------");
System.out.println("start : " + matchResult.start());
System.out.println("end : " + matchResult.end());
System.out.println("group : " + matchResult.group());
});
// 結果
// ↓
//------
//start : 0
//end : 3
//group : abc
//------
//start : 8
//end : 14
//group : aaaabc
関連記事:正規表現の基本
メソッド
int end ()
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaaabc");
// 前方一致
System.out.println(matcher.lookingAt()); // true
final var matchResult = matcher.toMatchResult();
System.out.println(matchResult.start()); // 0
System.out.println(matchResult.end()); // 3
System.out.println(matchResult.group()); // "abc"
final var pattern = Pattern.compile("a+bc");
final var matcher = pattern.matcher("abc 012 aaaabc 345");
// 部分一致のすべての結果
final var stream = matcher.results();
stream.forEach(matchResult -> {
System.out.println("------");
System.out.println("start : " + matchResult.start());
System.out.println("end : " + matchResult.end());
System.out.println("group : " + matchResult.group());
});
// 結果
// ↓
//------
//start : 0
//end : 3
//group : abc
//------
//start : 8
//end : 14
//group : aaaabc
int end (int group)
final var pattern = Pattern.compile("(abc|efg)_012_(x..)");
final var matcher = pattern.matcher("abc_012_xyz");
// 完全一致
System.out.println(matcher.matches()); // true
final var matchResult = matcher.toMatchResult();
System.out.println(matchResult.start()); // 0
System.out.println(matchResult.end()); // 11
System.out.println(matchResult.group()); // "abc_012_xyz"
final var groupCount = matchResult.groupCount();
System.out.println(groupCount); // 2
for (int i = 1; i <= groupCount; i++) {
System.out.println("------");
System.out.println("i : " + i);
System.out.println("start : " + matchResult.start(i));
System.out.println("end : " + matchResult.end(i));
System.out.println("group : " + matchResult.group(i));
}
// 結果
// ↓
//------
//i : 1
//start : 0
//end : 3
//group : abc
//------
//i : 2
//start : 8
//end : 11
//group : xyz
String group ()
このメソッドの使用例は、end() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
String group (int group)
このメソッドの使用例は、end(int group) にまとめて記載しました。
そちらのAPI使用例をご参照ください。
int groupCount ()
このメソッドの使用例は、end(int group) にまとめて記載しました。
そちらのAPI使用例をご参照ください。
int start ()
このメソッドの使用例は、end() にまとめて記載しました。
そちらのAPI使用例をご参照ください。
int start (int group)
このメソッドの使用例は、end(int group) にまとめて記載しました。
そちらのAPI使用例をご参照ください。