Регулярные выражения (regex) — это мощные шаблоны для поиска, сопоставления и извлечения текста. Они используются в программировании, валидации данных, операциях поиска и замены, а также в анализе логов. Сложность в том, что синтаксис regex бывает непросто написать правильно. Наш бесплатный Тестер Regex позволяет экспериментировать в реальном времени, чтобы вы точно видели, что находит ваш шаблон.
Что вам понадобится
- Шаблон для тестирования или задача по поиску текста
- Веб-браузер (Chrome, Firefox, Safari или Edge)
- Без регистрации и установки
Пошаговое руководство
Откройте Тестер Regex
Перейдите к инструменту Тестер Regex. Вы увидите две основные области: одна для шаблона регулярного выражения, другая для тестового текста, с которым будет выполняться сопоставление.
Напишите regex-шаблон
Введите регулярное выражение в поле шаблона. Начните с простого и постепенно усложняйте. Например, начните с буквального слова вроде hello, чтобы найти этот точный текст, затем уточняйте шаблон с помощью специальных символов для сопоставления с более широкими шаблонами.
Введите тестовый текст
Вставьте или введите образец текста в тестовую область. Включите примеры, которые должны совпадать, и примеры, которые не должны. Инструмент подсвечивает все совпадения в реальном времени по мере ввода, чтобы вы сразу видели, работает ли ваш шаблон правильно.
Уточните и проверьте
Корректируйте шаблон и наблюдайте, как совпадения обновляются мгновенно. Добавляйте граничные случаи в тестовый текст — необычные входные данные, пограничные условия и сложные форматы — чтобы убедиться, что ваш regex обрабатывает их правильно. Когда результат вас устроит, скопируйте шаблон в свой код или инструмент.
Полезно знать Тестер Regex работает полностью в вашем браузере. Никакие данные не отправляются на сервер, поэтому вы можете безопасно тестировать шаблоны на конфиденциальном тексте — email-адресах, лог-файлах или персональных данных.
Основной синтаксис regex
| Символ | Значение | Пример |
|---|---|---|
. |
Любой одиночный символ | h.t совпадает с "hat", "hit", "hot" |
* |
Ноль или более предыдущего | ab*c совпадает с "ac", "abc", "abbc" |
+ |
Один или более предыдущего | ab+c совпадает с "abc", "abbc", но не с "ac" |
? |
Ноль или один предыдущего | colou?r совпадает с "color" и "colour" |
\d |
Любая цифра (0-9) | \d{3} совпадает с "123", "456" |
\w |
Любой символ слова | \w+ совпадает с "hello", "test123" |
\s |
Любой пробельный символ | hello\sworld совпадает с "hello world" |
^ |
Начало строки | ^Hello совпадает с "Hello world" |
$ |
Конец строки | world$ совпадает с "Hello world" |
[abc] |
Любой символ из набора | [aeiou] совпадает с любой гласной |
(...) |
Группа захвата | (ab)+ совпадает с "ab", "abab" |
Распространённые шаблоны для практики
Скопируйте эти шаблоны в Тестер Regex и поэкспериментируйте с ними.
Email-адрес
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}
Совпадает со стандартными форматами email, такими как user@example.com и first.last@company.co.uk. Протестируйте его как с валидными, так и с невалидными форматами email, чтобы увидеть, как он обрабатывает граничные случаи.
URL
https?://[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}(/[^\s]*)?
Совпадает с HTTP- и HTTPS-ссылками вроде https://example.com и http://site.org/path/page. s? делает букву «s» в «https» необязательной.
Телефонный номер (формат США)
(\+1[-.\s]?)?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Совпадает с различными форматами телефонов США: (555) 123-4567, 555-123-4567, +1 555.123.4567 и похожими вариациями.
Совет При создании regex начинайте с простейшего шаблона, который совпадает с целевым текстом, а затем добавляйте ограничения по одному. Написать сложный regex целиком гораздо труднее, чем строить его постепенно, наблюдая за обновлением совпадений в реальном времени.
Типичные ошибки и как их избежать
Забыли экранировать специальные символы. Символы ., *, +, ?, (, ), [, ], {, } имеют специальное значение в regex. Чтобы найти их буквально, поставьте перед ними обратную косую черту: \. совпадает с точкой, \( совпадает со скобкой.
Слишком жадные квантификаторы. По умолчанию * и + захватывают как можно больше текста. Если вам нужно кратчайшее совпадение, добавьте ? после них: .*? захватывает как можно меньше.
Отсутствие якорей в шаблоне. Без ^ и $ шаблон вроде \d{3} совпадёт с любыми тремя последовательными цифрами в любом месте строки, включая часть более длинных чисел. Используйте якоря, когда нужно совпадение со всей строкой целиком.
Важно Синтаксис regex немного различается между языками программирования и инструментами. Шаблон, работающий в JavaScript, может вести себя иначе в Python или PHP. Всегда тестируйте финальный шаблон в том языке или среде, где будете его использовать.
Часто задаваемые вопросы
Что такое флаги regex?
Флаги изменяют способ применения шаблона. Распространённые флаги: g (глобальный — найти все совпадения, а не только первое), i (без учёта регистра) и m (многострочный — ^ и $ совпадают с границами строк, а не только с границами всего текста). Тестер Regex позволяет переключать эти флаги.
Можно ли использовать regex для поиска и замены?
Да. Большинство текстовых редакторов и языков программирования поддерживают поиск и замену на основе regex. Группы захвата (...) позволяют ссылаться на найденный текст в строке замены.
Как совпадать с текстом на нескольких строках?
Используйте флаг s (dotall), чтобы . совпадал с символами переноса строки, или используйте [\s\S] как кросс-платформенную альтернативу, совпадающую с любым символом, включая переносы строк.
Следующие шаги
Теперь, когда вы умеете создавать и тестировать regex-шаблоны, попробуйте использовать их в своём коде, текстовом редакторе или инструментах командной строки. Из других инструментов для разработчиков посмотрите Парсер cron для выражений расписания или Форматирование JSON для работы со структурированными данными.