English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java.regexパッケージのパターンクラスは正則表現のコンパイルされた表現です。
このクラスのcompile()このメソッドは正則表現式を表す文字列値を受け取り、Patternオブジェクトを返します。
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CompileExample { 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("Compiled regular expression: "+pattern.toString()); //検索マッチャーオブジェクト Matcher matcher = pattern.matcher(input); //マッチが発生したかどうかを確認 if(matcher.find()) { System.out.println("指定された文字列に数字が含まれています"); } else { System.out.println("指定された文字列に数字が含まれていません"); } } }
出力結果
入力文字列を入力 hello my id is 1120KKA コンパイルされた正規表現: (\d) 指定された文字列に数字が含まれています
このメソッドの別のバージョンは、各フラグを表す整数の値を受け取り、それぞれのフラグがオプションの条件を指定する、例えば、CASE_INSENSITIVEは正規表現をコンパイルする際に大文字と小文字を区別しないようにします。
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class CompileExample { public static void main( String args[] ) { //正規表現をコンパイル Pattern pattern = Pattern.compile("[t]", Pattern.CASE_INSENSITIVE); //検索マッチャーオブジェクト Matcher matcher = pattern.matcher("w3codebox); int count = 0; while(matcher.find()) { count++; } System.out.println("マッチ数: ");+count); } }
出力結果
入力文字列を入力 w3codebox マッチ数: 3