Что такое Regex?
Регулярные выражения (regex) — это последовательности символов, определяющие паттерны поиска. Они невероятно мощны для поиска, сопоставления и обработки текста.
Базовые символы
| Паттерн | Описание | Пример |
|---|
| . | Любой символ кроме новой строки | a.c находит "abc", "a1c" |
| \d | Любая цифра (0-9) | \d\d находит "42" |
| \D | Любой не-цифра | \D+ находит "abc" |
| \w | Символ слова (a-z, A-Z, 0-9, _) | \w+ находит "hello_123" |
| \W | Не-символ слова | \W находит "@", "#" |
| \s | Пробельный символ (пробел, таб, новая строка) | \s+ находит " " |
| \S | Не-пробельный символ | \S+ находит "hello" |
Квантификаторы
| Паттерн | Описание | Пример |
|---|
| * | 0 или более | ab*c находит "ac", "abc", "abbc" |
| + | 1 или более | ab+c находит "abc", "abbc" |
| ? | 0 или 1 (необязательно) | colou?r находит "color", "colour" |
| {n} | Ровно n раз | \d{4} находит "2025" |
| {n,} | n или более раз | \d{2,} находит "42", "123" |
| {n,m} | От n до m раз | \d{2,4} находит "42", "123", "2025" |
Якоря
| Паттерн | Описание | Пример |
|---|
| ^ | Начало строки/линии | ^Привет находит "Привет Мир" |
| $ | Конец строки/линии | Мир$ находит "Привет Мир" |
| \b | Граница слова | \bкот\b находит "кот" не "котенок" |
| \B | Не-граница слова | \Bкот находит "котенок" |
Классы символов
| Паттерн | Описание | Пример |
|---|
| [abc] | Находит любой a, b или c | [аеиоу] находит гласные |
| [^abc] | Находит любой кроме a, b или c | [^0-9] находит не-цифры |
| [a-z] | Диапазон: любая строчная буква | [a-zA-Z] любая буква |
| [0-9] | Диапазон: любая цифра | [0-9]+ находит числа |
Группы и альтернация
| Паттерн | Описание | Пример |
|---|
| (abc) | Группа захвата | (\d+)-(\d+) захватывает оба числа |
| (?:abc) | Группа без захвата | (?:https?://) группирует без захвата |
| a|b | Альтернация (или) | кот|собака находит любое |
| \1 | Ссылка на группу 1 | (\w)\1 находит "aa", "bb" |
Распространённые паттерны
Email адрес
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
URL
https?://[\w.-]+(?:/[\w./-]*)?
Номер телефона (Россия)
\+?7?[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{2}[-.\s]?\d{2}
Дата (ГГГГ-ММ-ДД)
\d{4}-\d{2}-\d{2}
IP адрес (IPv4)
\b(?:\d{1,3}\.){3}\d{1,3}\b
ИНН (Россия)
\d{10}|\d{12}
Флаги
| Флаг | Описание |
|---|
| i | Поиск без учёта регистра |
| g | Глобальный - находит все вхождения |
| m | Многострочный - ^ и $ соответствуют началу/концу строки |
| s | Dotall - . также соответствует новым строкам |
Советы по использованию Regex Data Extractor
- Начинайте просто и постепенно усложняйте
- Используйте функцию предпросмотра для тестирования паттернов
- Экранируйте специальные символы обратным слешем, когда хотите найти их буквально
- Используйте нежадные квантификаторы (
*?, +?) когда необходимо - Тестируйте с граничными случаями, чтобы убедиться, что паттерн работает правильно
С Regex Data Extractor вы можете применять эти паттерны непосредственно на любой веб-странице и извлекать именно те данные, которые вам нужны. Удачных извлечений!