Java
 Computer >> コンピューター >  >> プログラミング >> Java

【Java】PatternクラスのtoString()メソッドの使い方と実行例

java.util.regex パッケージの Pattern クラスは、正規表現をコンパイルした結果を表すクラスです。このクラスを利用することで、文字列に対する効率的なパターンマッチング処理を行うことができます。

toString() メソッドは、現在の Pattern オブジェクトがコンパイルされる際に使用された正規表現そのものを文字列として返します。つまり、Pattern.compile() に渡した正規表現と同じ内容を取得できます。

例1:toString()メソッドの基本的な使い方

import java.util.Scanner;
import java.util.regex.Pattern;

public class Example {
    public static void main(String args[]) {
        // 文字列の入力を読み込む
        Scanner sc = new Scanner(System.in);
        System.out.println("文字列を入力してください");
        String input = sc.nextLine();
        // 数字を検索するための正規表現
        String regex = "(\\d)";
        // 正規表現をコンパイルする
        Pattern pattern = Pattern.compile(regex);
        // コンパイルされた正規表現を出力する
        System.out.println("コンパイルされた正規表現: " + pattern.toString());
        // マッチしたかどうかを確認する
        if(pattern.matcher(input).find())
            System.out.println("指定された文字列には数字が含まれています");
        else
            System.out.println("指定された文字列には数字が含まれていません");
    }
}

実行結果

文字列を入力してください
This 7est contain5 di9its in place of certain charac7er5
コンパイルされた正規表現: (\d)
指定された文字列には数字が含まれています

この例では、ユーザーから入力された文字列に対して、数字(\d)を検索する正規表現をコンパイルしています。pattern.toString() を呼び出すと、コンパイル時に使用した正規表現「(\d)」がそのまま出力され、入力文字列に数字が含まれていることも確認できます。

例2:文字列リテラルに対するパターンマッチング

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

public class Example {
    public static void main(String args[]) {
        String regex = "Tutorialspoint$";
        String input = "Hi how are you welcome to Tutorialspoint";
        Pattern pattern = Pattern.compile(regex);
        Matcher match = pattern.matcher(input);
        if(match.find())
            System.out.println("マッチが見つかりました");
        else
            System.out.println("マッチが見つかりませんでした");
        System.out.println("正規表現: " + pattern.toString());
    }
}

実行結果

マッチが見つかりました
正規表現: Tutorialspoint$

この例では、文字列の末尾に「Tutorialspoint」が存在するかどうかを判定する正規表現「Tutorialspoint$」を使用しています。マッチの有無を確認した後、toString() メソッドによって、実際に使用された正規表現が出力されます。

まとめ

Pattern クラスの toString() メソッドは、Pattern.compile() に渡された正規表現の文字列表現をそのまま返します。デバッグやログ出力の際に、プログラム内でどの正規表現が使われているかを確認したい場合に非常に便利なメソッドです。

  1. JavaのPattern.matcher()メソッドの使い方を実例で解説

    Javaのjava.util.regexパッケージには、文字シーケンスの中から特定のパターンを検索するためのさまざまなクラスが用意されています。 このパッケージに含まれるPatternクラスは、正規表現をコンパイルした結果を表すクラスです。このクラスが提供するmatcher()メソッドは、入力文字列を表すCharSequenceオブジェクトを引数として受け取り、現在のPatternオブジェクトが表す正規表現と入力文字列を照合するためのMatcherオブジェクトを返します。 matcher()メソッドの基本的な流れ matcher()メソッドを使った正規表現マッチングは、一般的に以下の手順で行い

  2. 【Java】Pattern.compile()メソッドの使い方を具体例でわかりやすく解説

    java.util.regex パッケージに含まれる Pattern クラスは、正規表現をコンパイルした結果を表すクラスです。このクラスが持つ compile() メソッドは、正規表現を表す文字列を受け取り、その正規表現をコンパイルした Pattern オブジェクトを返します。 基本的な構文 compile() メソッドの最もシンプルな形式は、引数として正規表現の文字列を1つ受け取ります。 Pattern pattern = Pattern.compile(regex); コンパイル済みの Pattern オブジェクトから matcher() メソッドを呼び出すことで Matcher オブジェ