English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
本文java.util.regex.Matcherのこのクラスは、さまざまな一致操作を行うエンジンを表します。このクラスにはコンストラクタがありません。matches()
java.util.regex.Patternのメソッドで作成されます/このクラスのオブジェクトを取得します。
の両方一致()および発見()のMatcherクラスの試験メソッドが、入力文字列の正規表現に基づいて一致を見つけようと試みます。一致が見つかった場合、両方ともtrueを返します。一致が見つからない場合、両方のメソッドはfalseを返します。
主な違いはこのmatches()
このメソッドは、指定された入力の全てのエリアと一致しようと試みます。つまり、一行で数字を検索しようと試みた場合、入力がそのエリアの全ての行に数字を持っている場合にのみ、このメソッドはtrueを返します。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String regex = "(.*)"(\\d+)".;*)"; String input = "This is a sample Text, 1234, with numbers in between. " + "\n This is the second line in the text " + "\n This is third line in the text"; //パターンオブジェクトを生成する Pattern pattern = Pattern.compile(regex); //Matcherオブジェクトを生成する Matcher matcher = pattern.matcher(input); if(matcher.matches()) { System.out.println("マッチング項が見つかりました"); } else { System.out.println("マッチング項が見つかりません"); } } }
結果を出力する
一致項が見つかりませんでした
そしてこのfind()
このメソッドは、パターンに一致する次のサブストリングを検索しようと試みます。つまり、このエリアで少なくとも1つの一致が見つかった場合、このメソッドはtrueを返します。
以下の例を参照してください。特定の行と中間の数字を一致させることを試みます。
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String regex = "(.*)"(\\d+)".;*)"; String input = "This is a sample Text, 1234, with numbers in between. " + "\n This is the second line in the text " + "\n This is third line in the text"; //パターンオブジェクトを生成する Pattern pattern = Pattern.compile(regex); //Matcherオブジェクトを生成する Matcher matcher = pattern.matcher(input); //System.out.println("現在の範囲: "+input.substring(regStart, regEnd)); if(matcher.find()) { System.out.println("マッチング項が見つかりました"); } else { System.out.println("マッチング項が見つかりません"); } } }
結果を出力する
マッチング項を探す