English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

JavaのMatcher requireEnd()メソッドと例

本文java.util.regex.Matcherクラスのこのクラスは、さまざまなマッチ操作を行うエンジンを表します。このクラスにはコンストラクタがありませんが、使用できますmatches()java.util.regex.Patternクラスのメソッドで作成/このクラスのオブジェクトを取得します。

マッチがあれば、この(Matcher)クラスのrequireEnd()メソッドは、さらに多くの入力がある場合にマッチ結果がfalseになる可能性があるかどうかを確認し、その場合にはtrueを返し、そうでない場合はfalseを返します。

例えば、正規表現「you $」を使用して入力文字列の最後の単語をマッチさせる場合、最初の入力行が「hello you are」の場合はマッチしますが、さらに多くの行が追加されると、新しい行の最後の単語が必須の単語(つまり「you」)でない場合、マッチ結果はfalseになります。この場合、requiredEnd()メソッドはtrueを返します。

同様に、特定の文字を入力にマッチさせる場合は#とし、最初の入力行が「Hello#こんにちは」の場合、マッチが行われますが、さらに多くの入力データがマッチエンジンの内容を変更するかもしれませんが、結果は変更されません。これは真です。この場合、requiredEnd()メソッドはfalseを返します。

例1

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main(String args[]) {
      String regex = "you$";
      //ユーザー入力の読み取り
      Scanner sc = new Scanner(System.in);
      System.out.println("入力テキストを入力してください:");
      String input = sc.nextLine();
      //Patternクラスをインスタンス化する
      Pattern pattern = Pattern.compile(regex);
      //Matcherクラスをインスタンス化する
      Matcher matcher = pattern.matcher(input);
      //マッチングが発生したかどうかを確認する
      if(matcher.find()) {
         System.out.println("マッチングが見つかりました");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("さらに入力があれば、マッチングの結果が false になる可能性があります");
      } else{
         System.out.println("試合の結果は true になります、さらにデータが多い場合でも");
      }
   }
}

出力結果

入力テキストを入力してください:
Hello how are you
マッチングが見つかりました
さらに多くの入力がマッチの結果をfalseにする可能性があります

例2

import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class RequiredEndExample {
   public static void main(String args[]) {
      String regex = "[#]";
      //ユーザー入力の読み取り
      Scanner sc = new Scanner(System.in);
      System.out.println("入力テキストを入力してください:");
      String input = sc.nextLine();
      //Patternクラスをインスタンス化する
      Pattern pattern = Pattern.compile(regex);
      //Matcherクラスをインスタンス化する
      Matcher matcher = pattern.matcher(input);
      //マッチングが発生したかどうかを確認する
      if(matcher.find()) {
         System.out.println("マッチングが見つかりました");
      }
      boolean result = matcher.requireEnd();
      if(result) {
         System.out.println("さらに入力があれば、マッチングの結果が false になる可能性があります");
      } else{
         System.out.println("試合の結果は true になります、さらにデータが多い場合でも");
      }
   }
}

出力結果

入力テキストを入力してください:
Hello# how# are you
マッチングが見つかりました
試合の結果は true になります、さらにデータが多い場合でも