Что такое регулярное выражение
Регулярное выражение (Regular Expression, сокращённо regex) — это мини-язык для описания шаблонов строк. Несколько строк regex могут выполнить такие задачи обработки текста, как «найти все email», «проверить формат номера телефона» или «заменить все форматы дат».
Базовый синтаксис
Классы символов
Используйте квадратные скобки для сопоставления любого символа из набора:
[abc]соответствует a, b или c[a-z]соответствует любой строчной букве[0-9]соответствует любой цифре, эквивалентно\d[^abc]соответствует любому символу, кроме a/b/c
Предопределённые символы
\dцифра,\Dне цифра\wбуква, цифра или подчёркивание,\Wпротивоположное\sпробельный символ,\Sне пробельный.любой символ (кроме перевода строки)
Квантификаторы
*встречается 0 или более раз+встречается 1 или более раз?встречается 0 или 1 раз{n}ровно n раз,{n,m}от n до m раз
Группы и привязки
(...)группа захвата^начало строки,$конец строки
Распространённые примеры
Проверка email
^[\w.-]+@[\w.-]+\.\w{2,}$
Китайский номер мобильного телефона
^1[3-9]\d{9}$
Извлечение URL
https?://[\w./?=&%-]+
Инструмент тестирования regex DocsAll
Самый эффективный способ изучать regex — писать и тестировать одновременно. DocsAll предоставляет онлайн-инструмент тестирования regex, без необходимости установки окружения:
1. Введите регулярное выражение
В поле ввода выражения введите regex и выберите модификаторы (g глобальный, i без учёта регистра, m многострочный).
2. Введите тестовый текст
В текстовое поле ниже вставьте содержимое для сопоставления.
3. Просматривайте результаты в реальном времени
Совпадения будут подсвечены, а все группы захвата перечислены.
Рекомендации по изучению
- Начинайте с простых примеров; не пытайтесь сразу писать сложные regex
- Используйте группы и именованные группы для повышения читаемости
- Запомните разницу между жадными и нежадными квантификаторами (
*?+?) - В сценариях, чувствительных к производительности, избегайте вложенных квантификаторов
Регулярные выражения кажутся сложными, но после освоения базового синтаксиса практикуйтесь в инструменте тестирования regex DocsAll, и через неделю вы будете уверенно ими владеть.