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

Метод flags() в Java и примеры

java.regexКласс шаблонов пакета java.regex является компилированным представлением регулярного выражения.

Этот классcompile()Метод принимает строковое значение, представляющее регулярное выражение, и возвращаетPatternОбъект, вот подпись этого метода.

static Pattern compile(String regex)

Другой вариант этого метода принимает целое значение, представляющее флаги, и вот подпись метода compile с двумя параметрами.

static Pattern compile(String regex, int flags)

ЭтотШаблонКласс предоставляет различные области, каждая из которых представляет флаг

НомерСтолбцы и описание
1CANON_EQ
Только когда два символа канонически равныЕслиСоответствие.
2CASE_INSENSITIVE
Соответствие символов, без учета регистра.
3Комментарии
Разрешает пробельные символы и комментарии шаблона.
4DOTALL
Включает режим dotall. Символ '.' соответствует любому символу, включая символы分行.
5LITERAL
Включает текстовый анализ шаблона. То есть все символы и последовательностиEscape в входной последовательности рассматриваются как литеральные символы.
6MULTILINE
Включает режим многострочных строк, то есть всю входную последовательность рассматривается как одна строка.
7UNICODE_CASE
Включает возможностьИдентифицироватьUnicode сжатие регистров, то есть используется вместе с CASE_INSENSITIVE. Если использовать регулярное выражение для поиска Unicode символов, то в обоих случаях будут соответствовать Unicode символы.
8UNICODE_CHARACTER_CLASS
Включает Unicode версии предопределенных классов символов и POSIX классов символов.
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();
      //Создание объекта Pattern
      //Регулярное выражение принимает дату в формате MM-DD-YYY
String regex = "^(1[0-2]|0[1-9])/ # Для Месяца\n" + "(3[01]|[12][0-9]|0[1-9])/ # Для Даты\n"
      + "[0-9]{4}$ # Для Года";
      //Создание объекта Pattern
      //Создание объекта Matcher
      Matcher matcher = pattern.matcher(dob);
      boolean result = matcher.matches();
      if(result) {
         System.out.println("Указанная дата рождения действительна");
      }
         System.out.println("Указанная дата рождения недействительна");
      }
      System.out.println("Используемый флаг: "+ pattern.flags());
   }
}

Результат вывода

Введите ваше имя:
Кришна
Введите вашу дату рождения:
26.09.1989
Указанная дата рождения действительна
Используемый флаг: 4