English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
この正文このクラスは、さまざまな一致操作を行うエンジンを表します。このクラスにはコンストラクタがなく、java.util.regex.Matcherのmatches()
java.util.regex.Patternのメソッドで作成/このクラスのオブジェクトを取得します。
このhitEnd()この方法は、このようにするかどうかを検証し、そうであればtrue、そうでなければfalseを返します。この方法がtrueを返す場合、さらに多くの入力データが一致結果を変更する可能性があります。
例えば、正規表現「you $」を使用して入力文字列の最後の単語を一致させ、最初の入力行が「こんにちは、こんにちはか?」の場合は一致する可能性がありますが、もしあなたがさらに多くの行を入力する場合、新行の最後の単語が必ずしも必要な単語(つまり「you」)でないため、一致する結果が偽となるかもしれません。この場合、hitEnd()
方法返し真。
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class HitEndExample { 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.hitEnd(); if(result) { System.out.println("さらに入力が増えると、マッチングの結果がfalseになる可能性があります"); } System.out.println("マッチングの結果はtrueになる予定ですが、さらにデータがあればfalseになる可能性があります"); } } }
出力結果
入力テキストを入力してください: ハローハウアーユーは? マッチングが見つかりました さらに入力が増えると、マッチングの結果がfalseになる可能性があります