Класс Pattern
Класс Pattern является основой для работы с регулярными выражениями в Java.
Он представляет собой скомпилированное представление регулярного выражения.
Объект этого класса создается с помощью статического метода compile,
который принимает строку с регулярным выражением. Скомпилированный шаблон
потокобезопасен и может быть использован многократно для создания объектов
Matcher, которые выполняют непосредственный поиск и сопоставление
в заданной строке.
Синтаксис
Pattern pattern = Pattern.compile(regex);
Пример
Давайте скомпилируем простое регулярное выражение для поиска слова "abc" в строке и проверим его наличие:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("abc");
Matcher matcher = pattern.matcher("12345abcde");
boolean found = matcher.find();
System.out.println(found);
}
}
Результат выполнения кода:
true
Пример
Давайте скомпилируем шаблон для поиска всех цифр в строке и выведем каждое найденное совпадение:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("\\d");
Matcher matcher = pattern.matcher("a1b2c3");
while (matcher.find())
{
System.out.println(matcher.group());
}
}
}
Результат выполнения кода:
"1"
"2"
"3"
Пример
Давайте скомпилируем шаблон для поиска букв без учета регистра
с помощью флага CASE_INSENSITIVE:
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main
{
public static void main(String[] args)
{
Pattern pattern = Pattern.compile("[a-c]", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("AbC");
while (matcher.find())
{
System.out.println(matcher.group());
}
}
}
Результат выполнения кода:
"A"
"b"
"C"