Regex для начинающих
Регулярные выражения (regex) — это мощный инструмент для поиска паттернов в тексте. Этот гайд объясняет основы regex простым языком с примерами для использования в триггерах Имперского Стражника.
Основные символы
Обычные символы
Обычные буквы и цифры ищут сами себя:
- привет — найдёт слово "привет"
- 123 — найдёт цифры "123"
Специальные символы
Точка . — любой символ
к.т— найдёт "кот", "кит", "кат", "к5т"а.— найдёт "ах", "ай", "а1"
Экранирование \ — отменяет специальное значение
\.— найдёт точку\?— найдёт знак вопроса\\— найдёт обратный слэш
Квантификаторы (количество повторений)
Звёздочка * — 0 или больше раз
ха*— найдёт "х", "ха", "хаа", "хааа"спам*— найдёт "спа", "спам", "спамм"
Плюс + — 1 или больше раз
ха+— найдёт "ха", "хаа", "хааа" (но НЕ "х")о+— найдёт "о", "оо", "ооо"
Вопрос ? — 0 или 1 раз (необязательный символ)
привет!?— найдёт "привет" и "привет!"https?— найдёт "http" и "https"
Фигурные скобки {n,m} — от n до m раз
\d{3}— ровно 3 цифры\d{10,}— 10 или больше цифр (номера телефонов)а{2,4}— от 2 до 4 букв "а": "аа", "ааа", "аааа"
Классы символов
Квадратные скобки [...] — один из символов
[abc]— найдёт "a", "b" или "c"[0-9]— любая цифра от 0 до 9[а-я]— любая русская буква[a-zA-Z]— любая английская буква
Отрицание [^...] — любой символ КРОМЕ указанных
[^0-9]— любой символ, кроме цифр[^а-яА-Я]— любой символ, кроме русских букв
Готовые классы
\d— любая цифра (равносильно[0-9])\w— буква, цифра или подчёркивание\s— пробел, табуляция, перенос строки
Альтернативы и группировка
Вертикальная черта | — выбор (ИЛИ)
кот|пёс— найдёт "кот" или "пёс"да|нет|может быть— найдёт любой из трёх вариантов
Круглые скобки (...) — группировка
(спам)+— найдёт "спам", "спамспам", "спамспамспам"(ха)+— найдёт "ха", "хаха", "хахаха"(при|по)вет— найдёт "привет" или "повет"
Якоря (позиции)
Начало ^ и конец $
^привет— "привет" в начале текстапока$— "пока" в конце текста^слово$— только "слово", без других символов
Граница слова \b
\bкот\b— найдёт отдельное слово "кот", но не "котик" или "скотина"\b\d+\b— найдёт отдельные числа
Практические примеры для Guard
Фильтрация ссылок
https?://.*
Найдёт любую ссылку начинающуюся с http:// или https://
Как работает:
- https? — "http" и необязательная "s"
- :// — буквально "://"
- .* — любые символы до конца
Упоминания и каналы
@\w+
Найдёт @username, @channel
Как работает:
- @ — символ @
- \w+ — одна или больше букв/цифр
Номера телефонов
\d{10,}
Найдёт последовательность из 10+ цифр
Как работает:
- \d — цифра
- {10,} — 10 или более раз
Блокировка спам-слов
(спам|реклама|продам|куплю)
Найдёт любое из этих слов
Как работает:
- (...) — группа
- | — выбор между вариантами
Фильтр повторяющихся символов
(.)\1{4,}
Найдёт 5+ одинаковых символов подряд (ааааа, 11111)
Как работает:
- (.) — любой символ (сохраняется в группу)
- \1 — повторение первой группы (тот же символ)
- {4,} — ещё 4+ раза (итого 5+)
Блокировка e-mail
\w+@\w+\.\w+
Найдёт адреса электронной почты
Как работает:
- \w+ — буквы/цифры (имя)
- @ — символ @
- \w+ — буквы/цифры (домен)
- \. — точка (экранирована)
- \w+ — буквы/цифры (зона)
Капс (заглавные буквы)
[A-ZА-Я]{5,}
Найдёт 5+ заглавных букв подряд
Как работает:
- [A-ZА-Я] — любая заглавная буква (английская или русская)
- {5,} — 5 или более раз
Эмодзи-спам
[\u{1F600}-\u{1F64F}]{5,}
Найдёт 5+ эмодзи подряд
Блокировка промокодов
\b[A-Z0-9]{5,10}\b
Найдёт промокоды вида ABC123, PROMO2024
Как работает:
- \b — граница слова
- [A-Z0-9] — заглавные буквы или цифры
- {5,10} — от 5 до 10 символов
- \b — граница слова
Советы для начинающих
1. Начинайте просто
Не пытайтесь сразу написать сложное выражение. Начните с простого и усложняйте постепенно.
2. Тестируйте перед применением
Используйте сайты типа regex101.com для тестирования:
1. Выберите режим JavaScript
2. Включите флаг i (case insensitive)
3. Вставьте примеры текста
4. Проверьте, что паттерн работает правильно
3. Используйте уведомления для проверки
Перед применением бана/мута, создайте триггер с действием "уведомление" и проверьте, правильно ли он срабатывает.
4. Экранируйте специальные символы
Если нужно найти . (точку), ? (вопрос), * (звёздочку), используйте \., \?, \*
5. Не усложняйте без необходимости
Если можно использовать условие "содержит" вместо regex — используйте его. Regex нужен для сложных паттернов.
Частые ошибки
❌ Забыли экранировать точку
google.com
Найдёт "googleXcom", "google com", "google1com"
✅ Правильно
google\.com
Найдёт только "google.com"
❌ Неправильная группировка
привет|пока всем
Найдёт "привет" или "пока всем" (не то что нужно)
✅ Правильно
(привет|пока) всем
Найдёт "привет всем" или "пока всем"
❌ Забыли про границы слова
бот
Найдёт "бот", "работа", "ботинок"
✅ Правильно
\bбот\b
Найдёт только "бот"
Полезные ресурсы
- regex101.com — тестирование регулярных выражений
- regexr.com — интерактивный учебник с примерами
- Шпаргалка по regex
Примеры готовых паттернов
Социальные сети
(vk\.com|t\.me|instagram\.com|tiktok\.com)
Криптовалюта
\b[13][a-km-zA-HJ-NP-Z1-9]{25,34}\b
Биткоин-адреса
IP-адреса
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
Домены
\b[a-z0-9-]+\.(ru|com|net|org)\b
Реклама
(подпис|реклам|промо|скид|продам|куплю|@\w+)
💡 Помните: В Имперском Стражнике все regex выполняются с флагом i (без учёта регистра), поэтому СПАМ, спам и СпАм — будут найдены одинаково.