Метод compile
Метод compile класса Pattern компилирует заданное регулярное выражение в объект класса Pattern. В первый параметр мы передаем строку с регулярным выражением, во второй параметр (необязательный) - флаги, которые изменяют поведение сопоставления, например Pattern.CASE_INSENSITIVE для игнорирования регистра. Скомпилированный объект Pattern затем используется для создания Matcher, который выполняет поиск и сопоставление в строках.
Синтаксис
Pattern.compile(String regex)
Pattern.compile(String regex, int flags)
Пример
Давайте скомпилируем простое регулярное выражение, которое соответствует цифрам от 1 до 5, и проверим его работу на строке:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main
{
public static void main(String[] args)
{
String regex = "[1-5]+";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher("12345");
System.out.println(matcher.matches());
}
}
Результат выполнения кода:
true
Пример
Давайте скомпилируем регулярное выражение с флагом Pattern.CASE_INSENSITIVE, чтобы поиск игнорировал регистр букв:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main
{
public static void main(String[] args)
{
String regex = "abcde";
Pattern pattern = Pattern.compile(regex, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("ABCDE");
System.out.println(matcher.matches());
}
}
Результат выполнения кода:
true
Пример
Давайте скомпилируем регулярное выражение, которое может выбрасывать исключение PatternSyntaxException при неверном синтаксисе:
import java.util.regex.Pattern;
public class Main
{
public static void main(String[] args)
{
try
{
Pattern pattern = Pattern.compile("[a-z");
System.out.println("Pattern compiled: " + pattern);
}
catch (Exception e)
{
System.out.println("Error: " + e.getMessage());
}
}
}
Результат выполнения кода:
"Error: Unclosed character class"
Смотрите также
-
класс
Pattern,
который представляет скомпилированное регулярное выражение -
метод
matcher,
который создает сопоставитель для строки -
метод
matches,
который проверяет полное совпадение строки с шаблоном -
исключение
PatternSyntaxException,
которое возникает при ошибке в синтаксисе