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

Javaのパターンのflags()メソッド及びサンプル

java.regexパッケージのパターンクラスは、正規表現のコンパイルされた表現です。

このクラスのcompile()メソッドは、正規表現を表す文字列値を受け取り、返します。Patternオブジェクト、以下はこのメソッドのシグネチャです。

static Pattern compile(String regex)

このメソッドの別バージョンは、フラグを表す整数値を受け取ります。以下は、2つのパラメータを持つcompileメソッドのシグネチャです。

static Pattern compile(String regex, int flags)

このパターンクラスは、各領域を代表するフラグを提供します。

番号欄位及び説明
1CANON_EQ
2つの文字のキャノニカル相等がマッチします。
2CASE_INSENSITIVE
キャメルケースの文字をマッチします。
3コメント
スペースとパターンコメントを許可します。
4DOTALL
dotallモードを有効にします。ここでの'.'文字は、行終端記号を含むすべての文字にマッチします。
5LITERAL
パターンの文字解析を有効にします。つまり、入力シーケンスのすべてのメタ文字とエスケープシーケンスが文字文字として処理されます。
6MULTILINE
多行モードを有効にします。つまり、全体の入力シーケンスを1行として処理します。
7UNICODE_CASE
有効にする認識Unicodeの大文字小文字折り返し、つまりCASE_INSENSITIVEと一緒に使用する場合。Unicode文字を正規表現で検索する場合、両方のUnicode文字がマッチします。
8UNICODE_CHARACTER_CLASS
プレデファインドの文字クラスとPOSIX文字クラスのUnicodeバージョンを有効にします。
9UNIX_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