English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
java.regexКласс шаблонов пакета java.regex является компилированным представлением регулярного выражения.
Этот классcompile()Метод принимает строковое значение, представляющее регулярное выражение, и возвращаетPatternОбъект, вот подпись этого метода.
static Pattern compile(String regex)
Другой вариант этого метода принимает целое значение, представляющее флаги, и вот подпись метода compile с двумя параметрами.
static Pattern compile(String regex, int flags)
ЭтотШаблонКласс предоставляет различные области, каждая из которых представляет флаг
Номер | Столбцы и описание |
---|---|
1 | CANON_EQ Только когда два символа канонически равныЕслиСоответствие. |
2 | CASE_INSENSITIVE Соответствие символов, без учета регистра. |
3 | Комментарии Разрешает пробельные символы и комментарии шаблона. |
4 | DOTALL Включает режим dotall. Символ '.' соответствует любому символу, включая символы分行. |
5 | LITERAL Включает текстовый анализ шаблона. То есть все символы и последовательностиEscape в входной последовательности рассматриваются как литеральные символы. |
6 | MULTILINE Включает режим многострочных строк, то есть всю входную последовательность рассматривается как одна строка. |
7 | UNICODE_CASE Включает возможностьИдентифицироватьUnicode сжатие регистров, то есть используется вместе с CASE_INSENSITIVE. Если использовать регулярное выражение для поиска Unicode символов, то в обоих случаях будут соответствовать Unicode символы. |
8 | UNICODE_CHARACTER_CLASS Включает Unicode версии предопределенных классов символов и POSIX классов символов. |
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(); //Создание объекта 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