English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java.regexパッケージのパターンクラスは、正規表現のコンパイルされた表現です。
このクラスのcompile()メソッドは、正規表現を表す文字列値を受け取り、返します。Patternオブジェクト、以下はこのメソッドのシグネチャです。
static Pattern compile(String regex)
このメソッドの別バージョンは、フラグを表す整数値を受け取ります。以下は、2つのパラメータを持つcompileメソッドのシグネチャです。
static Pattern compile(String regex, int flags)
このパターンクラスは、各領域を代表するフラグを提供します。
番号 | 欄位及び説明 |
---|---|
1 | CANON_EQ 2つの文字のキャノニカル相等が時マッチします。 |
2 | CASE_INSENSITIVE キャメルケースの文字をマッチします。 |
3 | コメント スペースとパターンコメントを許可します。 |
4 | DOTALL dotallモードを有効にします。ここでの'.'文字は、行終端記号を含むすべての文字にマッチします。 |
5 | LITERAL パターンの文字解析を有効にします。つまり、入力シーケンスのすべてのメタ文字とエスケープシーケンスが文字文字として処理されます。 |
6 | MULTILINE 多行モードを有効にします。つまり、全体の入力シーケンスを1行として処理します。 |
7 | UNICODE_CASE 有効にする認識Unicodeの大文字小文字折り返し、つまりCASE_INSENSITIVEと一緒に使用する場合。Unicode文字を正規表現で検索する場合、両方のUnicode文字がマッチします。 |
8 | UNICODE_CHARACTER_CLASS プレデファインドの文字クラスとPOSIX文字クラスのUnicodeバージョンを有効にします。 |
9 | UNIX_LINES このフラグはUnix行モードを有効にします。 |
このクラスのflags()方法返回当前模式中使用的标志。
import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class COMMENTES_Example { public static void main(String[] args) {}} Scanner sc = new Scanner(System.in); System.out.println("あなたの名前を入力してください: "); String name = sc.nextLine(); System.out.println("あなたの生年月日を入力してください: "); String dob = sc.nextLine(); //正規表現はMM-DD-YYY形式の日期を許可します String regex = "^(1[0-2]|0[1-9]/ # 月のための " + "(3[01]|[12][0-9]|0[1-9]/ # 日付のための " + "[0-9]4$# 年"; //Patternオブジェクトを生成します Pattern pattern = Pattern.compile(regex, Pattern.COMMENTS); //Matcherオブジェクトを生成します Matcher matcher = pattern.matcher(dob); boolean result = matcher.matches(); if(result) { System.out.println("指定された生年月日が有効です"); } else { System.out.println("指定された生年月日が有効ではありません"); } System.out.println("使用されたFlag: ");+ pattern.flags()); } }
出力結果
あなたの名前を入力してください: Krishna あなたの生年月日を入力してください: 09/26/1989 指定された生年月日が有効です 使用されたFlag: 4