Основы regex
Шаблон регулярного выражения — это компактный способ описать текст, который нужно сопоставить. Начните с простого: сопоставьте один элемент, проверьте, затем добавляйте группы, якоря или квантификаторы только при необходимости.
Якоря
^ означает начало ввода и $ означает конец ввода.
Классы символов
[0-9], [A-Z], и [a-z] сопоставляют диапазоны.
Квантификаторы
* = ноль или более, + = один или более, ? = необязательно.
Распространённые шаблоны
| Сценарий использования | Шаблон | Примечания |
|---|---|---|
| Эл. почта | ^[^\s@]+@[^\s@]+\.[^\s@]+$ | Хорошая универсальная проверка, но не полноценный парсер RFC. |
| URL | https?:\/\/[^\s]+ | Соответствует базовым ссылкам HTTP и HTTPS. |
| Целое число | ^-?\d+$ | Поддерживает необязательный знак минуса. |
| Десятичное число | ^-?\d+(\.\d+)?$ | Соответствует целым и десятичным числам. |
| Пробельные символы | \s+ | Полезно для сжатия повторяющихся пробелов и переносов строк. |
| HEX-цвет | ^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$ | Поддерживает 3- и 6-значные цвета. |
| IPv4 | \b(?:\d{1,3}\.){3}\d{1,3}\b | Совпадает с текстом, похожим на IPv4, но не является строгой проверкой диапазона 0–255. |
| Пустые строки | ^\s*$ | Используйте с многострочным режимом для поиска пустых строк. |
Флаги, которые вы используете чаще всего
g глобальный
Находить все совпадения, а не останавливаться после первого совпадения.
i игнорировать регистр
Делает сопоставление нечувствительным к регистру; полезно для ключевых слов и пользовательского ввода.
m многострочный
Заставляет ^ и $ работать построчно.
s dotall
Позволяет . сопоставлять переносы строк, а также обычные символы.
Распространённые ошибки при работе с регулярными выражениями
- Не начинайте с огромного универсального шаблона. Стройте его постепенно и проверяйте каждую часть.
- Не забудьте экранировать специальные символы, например ., ?, +, и [ когда вам нужен буквальный символ.
- Если нужны только целые слова, добавьте границы, например \bword\b.
- Будьте осторожны с жадным сопоставлением. .* часто захватывает больше, чем вы ожидаете.
Используйте эту справку с подходящим инструментом
Найдите шаблон здесь, затем проверьте его в реальном времени, примените к реальному тексту или используйте в рабочем процессе замены.