CodeGym /Java Blog /ランダム /Java 正規表現 - マッチャー
John Squirrels
レベル 41
San Francisco

Java 正規表現 - マッチャー

ランダム グループに公開済み

Java の正規表現とは何ですか?

正規表現 または正規表現は、パターンを形成する一連の文字です。データを検索する場合、この特殊なパターンを使用して、一致する文字列を見つけることができます。単一文字のような単純なものもあれば、より複雑なパターンにすることもできます。Java には、パターンの検索と操作に正規表現を使用する機能を提供するクラスを含む Java regex パッケージがあります。このパッケージは、次の方法でコードにインポートされます。
import java.util.regex.*;

Java 正規表現 - マッチャー

Java Matcher クラスは、正規表現を使用したパターン マッチングを提供します。
このコード行は、正規表現パッケージで使用可能なすべてのクラスをインポートします。Matcherクラスのみをインポートする場合は、次のコード行を使用してインポートできます。
import java.util.regex.Matcher;
Java regex パッケージには 3 つのクラスがあります。
  1. パターンクラス: 検索する必要があるパターンを定義します。

  2. Matcherクラス: テキスト内のパターンを照合して検索します。

  3. PatternSyntaxExceptionクラス: 正規表現内の構文エラーを示します。

その仕組みは非常に簡単です。まず、正規表現からPatternオブジェクトを作成してパターンを定義します。次に、Patternオブジェクトを使用してMatcherオブジェクトが作成されます。Matcherクラスに多くのメソッドがあります。これらの中で最も重要なのはmatches()メソッドで、正規表現がテキストと一致する場合はtrueを返し、そうでない場合はfalseを返します。Java Matcherクラスには、Javaの replace()メソッドよりも複雑な機能を実行する、入力文字列内のテキストを置換するための便利なメソッドが他にも多数あります。Java にはreplace()メソッドが2 つしかありませんが、Matcherクラスはこのタスクに複数の関数を提供します。

Java Matcherクラスのメソッド

Java Matcherクラスのメソッドの一部を以下に説明します。
  • booleanmatches() —正規表現がパターンに一致する場合にtrueを返します。

  • boolean find() — パターンに一致する次の正規表現を検索します。

  • boolean find(int start) — 指定された開始位置からパターンに一致する次の正規表現を検索します。

  • int start() — 一致の開始インデックスを返します。

  • int end() — 返された一致の終了インデックスを返します。

  • int groupCount() — 一致するグループの総数を返します。

  • String replaceAll(String replace) — 一致のすべてのサブシーケンスを指定された置換で置き換えます。

  • String replaceFirst(String replace) — 一致の最初のサブシーケンスを指定された置換で置き換えます。

Java マッチャーの例

Matcherクラスには便利なメソッドが多数ありますが、 matches()メソッドの具体的な例をさらに見ていきます。

matches() メソッドの使用

以下に、matches()メソッドのJava Matcher の例を示します。
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Example {

	public static void main(String[] args) {

		String regexPattern = "(.*)apple(.*)"; // this regex means that any char sequence can precede or succeed "apple"
		String firstCheck = "Apples";
		String secondCheck = "Apple";
		String thirdCheck = "apple";
		String fourthCheck = "An apple a day keeps the doctor away.";
		String fifthCheck = "green apple, yellow apple, red apple, i love all kinds of apples.";


		Pattern pattern = Pattern.compile(regexPattern);
		Matcher matcher1 = pattern.matcher(firstCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + firstCheck);
		System.out.println("Output for matches(): " + matcher1.matches() + "\n");

		Matcher matcher2 = pattern.matcher(secondCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + secondCheck);
		System.out.println("Output for matches(): " + matcher2.matches() + "\n");

		Matcher matcher3 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + thirdCheck);
		System.out.println("Output for matches(): " + matcher3.matches() + "\n");

		Matcher matcher4 = pattern.matcher(thirdCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fourthCheck);
		System.out.println("Output for matches(): " + matcher4.matches() + "\n");

		Matcher matcher5 = pattern.matcher(fifthCheck);

		System.out.println("The Pattern  is: " + pattern);
		System.out.println("Text to check is: " + fifthCheck);
		System.out.println("Output for matches(): " + matcher5.matches() + "\n");
	}
}
出力
パターンは次のとおりです: (.*)apple(.*) チェックするテキストは次のとおりです:matches() の Apple 出力: false パターンは次のとおりです: (.*)apple(.*) チェックするテキストは次のとおりです:matches() の Apple 出力: false パターン: (.*)apple(.*) チェックするテキスト: applematches() の出力: true パターン: (.*)apple(.*) チェックするテキスト: 1 日 1 個のリンゴ医者を遠ざけます。matches() の出力: true パターン: (.*)apple(.*) チェックするテキスト: 青リンゴ、黄リンゴ、赤リンゴ、私はあらゆる種類のリンゴが大好きです。matchs() の出力: true

結論

この投稿を終えるまでに、 Java のJava Matcherクラスについてよく理解していただければ幸いです。コードでそれを使用する方法を学習しました。Matcherクラスのmatches()メソッドを呼び出す方法も学習しました。Matcherクラスの他のメソッドを自分で試して、より深く理解することができます。概念をより深く理解できるように練習を続けてください。それまで、成長して輝き続けてください!
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION