モジュール java.base
パッケージ java.util.regex

クラスMatcher

java.lang.Object
java.util.regex.Matcher
すべての実装されたインタフェース:
MatchResult

public final class Matcher extends Object implements MatchResult
Patternを解釈することによって、 文字シーケンスのマッチ操作を行うエンジンです。

マッチャは、パターンのmatcherメソッドを呼び出すことによって作成されます。 一度作成すると、次の3種類のマッチ操作に使用できます。

  • matchesメソッドは、入力シーケンス全体とパターンをマッチする。

  • lookingAtメソッドは、入力シーケンスの先頭から始めてパターンをマッチする。

  • findメソッドは、入力シーケンスを走査して、パターンとマッチする次の部分シーケンスを検索する。

これらのメソッドは、マッチが成功したかどうかを示すboolean値を返します。 マッチが成功したときは、マッチャの状態を照会すれば詳細を取得できます。

正規検索エンジンは領域と呼ばれる入力のサブセットでマッチを検索します。 デフォルトでは、領域には正規検索エンジンの入力すべてが含まれます。 領域を変更するには、 regionメソッドを使用し、照会するには、regionStartメソッドおよびregionEndメソッドを使用します。 領域の境界による一定のパターン作成の方法は変更できます。 詳細は、useAnchoringBoundsおよびuseTransparentBoundsを参照してください。

このクラスには、マッチした部分シーケンスを新しい文字列に置換するメソッドも定義します。新しい文字列の内容は、必要に応じてマッチ結果から算出できます。 結果を既存の文字列バッファまたは文字列ビルダーに収集するために、appendReplacementメソッドとappendTailメソッドを同時に使用できます。 または、より便利なreplaceAllメソッドを使用して、入力シーケンス内のすべての一致するサブシーケンスが置換される文字列を作成できます。

マッチャの明示的な状態として、最後に成功したマッチの開始インデックスと終了インデックスがあります。 また、パターンの各前方参照を行う正規表現グループによって前方参照された入力部分シーケンスの開始インデックスと終了インデックスや、前方参照された部分シーケンスの総数も利用されます。 前方参照された部分シーケンスを文字列形式で返すメソッドも用意されています。

マッチャの明示的な状態の初期値は定義されていません。マッチが成功する前にその一部を照会しようとすると、IllegalStateExceptionがスローされます。 マッチャの明示的な状態は、マッチ操作のたびに計算し直されます。

マッチャの暗黙的な状態には、入力文字シーケンスや追加位置があります。追加位置の初期値はゼロで、appendReplacementメソッドによって更新されます。

マッチャをリセットするには、マッチャのreset()メソッドまたはreset(CharSequence)メソッド(新しい入力シーケンスが必要な場合)を呼び出します。 マッチャをリセットすると、その明示的な状態に関する情報が破棄され、追加位置がゼロに設定されます。

このクラスのインスタンスは、複数のスレッドで並行して使用することはできません。

導入されたバージョン:
1.4