Java RegEx
Оновлено: 22.05.2023
Що таке регулярний вираз?
Регулярний вираз - це послідовність символів, яка формує шаблон пошуку. Коли ви шукаєте дані в тексті, ви можете використовувати цей шаблон пошуку для опису того, що ви шукаєте.
Регулярний вираз може бути як одним символом, так і більш складним шаблоном.
Регулярні вирази можна використовувати для виконання всіх типів пошуку та заміни тексту.
Java не має вбудованого класу регулярних виразів, але ми можемо імпортувати пакет java.util.regex для роботи з регулярними виразами. До складу пакету входять наступні класи:
Клас шаблону - визначає шаблон (для використання в пошуку) Клас Matcher - Використовується для пошуку шаблону Клас PatternSyntaxException - вказує на синтаксичну помилку в шаблоні регулярного виразу
Дізнайтеся, чи є в реченні входження слова "w3schools":
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern pattern = Pattern.compile("w3schools", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher("Visit W3Schools!");
boolean matchFound = matcher.find();
if(matchFound) {
System.out.println("Match found");
} else {
System.out.println("Match not found");
}
}
}
// Outputs Match found
У цьому прикладі в реченні шукається слово "w3schools".
Спочатку створюється шаблон за допомогою методу Pattern.compile(). Перший параметр вказує, який шаблон шукати, а другий параметр має прапорець, який вказує на те, що пошук має бути нечутливим до регістру. Другий параметр не є обов'язковим.
Метод matcher() використовується для пошуку шаблону в рядку. Він повертає об'єкт Matcher, який містить інформацію про виконаний пошук.
Метод find() повертає true, якщо шаблон знайдено в рядку, і false, якщо його не знайдено.
Прапори
Прапори в методі compile() змінюють спосіб виконання пошуку. Ось декілька з них:
Pattern.CASE_INSENSITIVE - При пошуку буде ігноруватися регістр літер. Pattern.LITERAL - Спеціальні символи в шаблоні не матимуть ніякого особливого значення і будуть розглядатися як звичайні символи при виконанні пошуку. Pattern.UNICODE_CASE - Використовуйте його разом з прапором CASE_INSENSITIVE, щоб також ігнорувати регістр літер поза англійським алфавітом
Шаблони регулярних виразів
Першим параметром методу Pattern.compile() є шаблон. Він описує те, що шукається.
Дужки використовуються для пошуку діапазону символів:
Метасимволи
Метасимволи - це символи з особливим значенням:
Квантифікатори
Квантифікатори визначають кількість: