Skip to content
Шпаргалка по regex
Tools

Шпаргалка по regex

Новое

Удобный справочник токенов и флагов регулярных выражений.

Live regex tester

Type a pattern and a test string — matches highlight instantly, with every capture group broken out below.

/ /
Flags
Matches
Capture groups

Common regex patterns

Battle-tested patterns — load one into the tester to see it run, or copy it straight out.

Email address
[\w.+-]+@[\w-]+\.[\w.-]+
URL (http/https)
https?:\/\/[^\s]+
US phone number
\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{4}
Date (YYYY-MM-DD)
(\d{4})-(\d{2})-(\d{2})
Time (24-hour)
([01]?\d|2[0-3]):[0-5]\d
IPv4 address
\b(?:\d{1,3}\.){3}\d{1,3}\b
Hex color
#(?:[0-9a-fA-F]{6}|[0-9a-fA-F]{3})\b
Slug / username
[a-z0-9]+(?:-[a-z0-9]+)*
Whole number / integer
-?\d+
Strong password (8+, mixed)
(?=.*[a-z])(?=.*[A-Z])(?=.*\d).{8,}
Duplicate word
\b(\w+)\s+\1\b
Trailing whitespace
[ \t]+$

Regex cheat sheet

Every token, grouped with a quick example. Search by symbol or keyword; click any token to copy it.

Regex flavors: JavaScript, Python, Java, PCRE & grep

The tester above runs JavaScript regex. Most syntax is shared — here's what differs between engines.

FeatureJavaScriptPython (re)JavaPCRE / grep
Named group(?<name>…)(?P<name>…)(?<name>…)(?P<name>…)
Dotall (. matches \n)s flagre.DOTALL / (?s)Pattern.DOTALL(?s)
Ignore casei flagre.IGNORECASE / (?i)(?i) flag(?i) / grep -i
Lookbehind(?<=…) ES2018+SupportedSupportedgrep -P only
Backslash in source/\d/ literalr"\d" raw string"\\d" doubled\d
Find every matchstr.matchAll(/…/g)re.findall()Matcher.find()grep -o
POSIX class [[:digit:]]use \d insteaduse \d insteadsupportedsupported

Runs entirely in your browser. Nothing is uploaded.

Шпаргалка по regex с примерами — и живой тестер

Эта шпаргалка по регулярным выражениям собирает все токены regex в одном месте — и сочетается с живым тестером, чтобы вы могли проверить паттерн сразу же. Введите выражение, выберите флаги, вставьте тестовую строку — совпадения подсвечиваются мгновенно, а каждая группа захвата разбирается отдельно.

Ничего устанавливать не нужно, регистрация не требуется: весь справочник по регулярным выражениям работает прямо в браузере, поэтому тестируемый текст никуда не отправляется. Без рекламы, без стены авторизации, без ограничений на размер тестовых строк.

Все токены regex, сгруппированные с примерами

Справочник охватывает синтаксис, который действительно используется: классы символов (\d, \w, \s и пользовательские наборы вроде [a-z]), якоря и границы (^, $, \b), квантификаторы (*, +, ?, {n,m} и их ленивые варианты), группы и чередование, опережающие и ретроспективные проверки, флаги g i m s u y, а также экранирование для литеральных точек и слэшей.

Каждый элемент сопровождается коротким, конкретным примером — \bкот\b найдёт слово «кот», но не «котёнок» — чтобы смысл запомнился. Ищите токены regex по символу или ключевому слову и нажмите на любой, чтобы скопировать.

Тестируйте паттерн по мере написания

Статические шпаргалки не могут сказать, работает ли ваш паттерн на самом деле. Встроенный тестер regex компилирует выражение в реальном времени, подсвечивает каждое совпадение в тестовом тексте и перечисляет нумерованные и именованные группы захвата для каждого.

Переключайте флаги: глобальный, без учёта регистра, многострочный, dotall, Unicode и sticky — и наблюдайте, как меняются результаты. Если паттерн некорректен, вы получите понятное сообщение об ошибке вместо молчаливого сбоя — а видеть совпадение паттерна в реальном времени — самый быстрый способ выучить regex.

Готовые regex-паттерны для копирования

Некоторые паттерны нужны снова и снова — email-адреса, URL, номера телефонов, даты ISO, IPv4-адреса, HEX-цвета и проверка надёжности пароля. Раздел «Типовые паттерны» предоставляет проверенный вариант каждого: загрузите его прямо в тестер, чтобы увидеть в действии на примере, или скопируйте в свой код.

Это прагматичные отправные точки для адаптации, а не универсальные правила — именно поэтому так важно тестировать их на собственных данных.

Сравнение с regex101.com и regexr.com

regex101.com — самый популярный специализированный инструмент для regex в интернете, и не зря. Он поддерживает шесть диалектов regex (PCRE, Python re, Golang, Java, .NET и JavaScript), отображает панель пояснений для каждого токена и ведёт историю совпадений. Если вы отлаживаете сложный production-паттерн или хотите убедиться, что паттерн одинаково работает в PHP и Python — regex101 здесь незаменим. regexr.com предлагает схожий опыт с публичной библиотекой паттернов от сообщества.

Эта страница UtiloKit занимает другое место в рабочем процессе. Она совмещает таблицу токенов с поиском и живой тестер на одном экране — оптимально для ситуации, когда вы примерно знаете, что нужно, но не помните точный синтаксис. Зашли, нашли токен, вставили тестовую строку и вернулись к редактору — без переключения вкладок, без аккаунта, без рекламы. Для разработчиков, которые каждый день заходят на regex101.com только чтобы вспомнить, как пишется ретроспективная проверка — (?<=…) или (?<!…) — иметь выделенный поисковый справочник заметно быстрее. Используйте оба: regex101 для глубокой отладки, эту страницу — для быстрых справок.

Диалекты regex: JavaScript, Python, Java, PCRE и grep

Большинство синтаксиса regex переносимо, но движки различаются в деталях. Тестер здесь использует JavaScript regex — тот же диалект, что в Node.js и браузере. Модуль Python re требует «сырых строк» вроде r"\d+" и именует группы как (?P<name>…); Java требует удвоенных обратных слэшей в строковых литералах; PCRE (PHP и grep -P) наиболее функционально полный; а POSIX grep -E имеет собственные особенности экранирования.

Таблица диалектов описывает именованные группы, dotall, регистронезависимость, ретроспективные проверки и «найти все» для каждого движка — чтобы вы могли перенести паттерн из Python в JavaScript — или наоборот — без неожиданностей.

Жадность и лень, и другие подводные камни

Две вещи запутывают почти всех. Во-первых, квантификаторы жадные: .+ захватывает как можно больше, поэтому для совпадения с одиночным HTML-тегом обычно нужен ленивый .+?. Во-вторых, забытое экранирование метасимволов — голая . совпадает с любым символом, тогда как \. — с буквальной точкой, поэтому regex для цены должен содержать \d+\.\d{2}.

Держите шпаргалку открытой во время работы — и эти ошибки перестанут быть неожиданностью.

Приватно, мгновенно и бесплатно

Ничего устанавливать не нужно, регистрация не требуется. Каждый поиск, каждое совпадение и каждое копирование происходят локально в вашем браузере — ваши паттерны и тестовые данные никогда не покидают устройство. Добавьте эту шпаргалку по регулярным выражениям в закладки и обращайтесь к ней, когда нужно вспомнить токен или проверить паттерн.

Frequently asked questions

Что такое регулярное выражение — с примером?

Регулярное выражение (regex) — это компактный паттерн, описывающий множество строк, используемый для поиска, сопоставления и замены текста. Например, паттерн \d{3}-\d{4} найдёт фрагмент телефона вроде 555-1234, потому что \d означает «цифра», а {3} — «ровно три». Regex используется в поиске с заменой, валидации форм и разборе логов почти в каждом языке программирования и редакторе кода. Живой тестер в верхней части страницы позволяет опробовать любой паттерн мгновенно.

Какие основные токены regex?

Основные строительные блоки: . (любой символ, кроме новой строки), \d (цифра), \w (символ слова — буква, цифра или подчёркивание), \s (пробельный символ), якоря ^ (начало) и $ (конец), а также квантификаторы * (ноль или больше), + (один или больше) и ? (опционально). Таким образом, \w+ найдёт целое слово, а \d+ — целое число, например 2024. Комбинируйте их — ^\d+$ совпадёт со строкой, состоящей только из цифр. Каждый токен в этой шпаргалке сопровождается примером для копирования.

Что означают \d, \w и \s?

\d совпадает с любой цифрой от 0 до 9; \w — с символом слова (a–z, A–Z, 0–9 или _); \s — с пробельным символом (пробел, табуляция или перевод строки). Их заглавные версии являются отрицаниями: \D — не цифра, \W — не символ слова, \S — не пробел. Например, в тексте «a5 b» \d совпадёт с 5, \w — с a, 5 и b, а \s — с пробелом между ними. Эти три сокращённых класса покрывают подавляющее большинство повседневных regex-паттернов.

Что такое якоря в regex?

Якоря совпадают с позицией, а не с символом. ^ совпадает с началом строки (или каждой строки с флагом m), $ — с концом, \b — с границей слова, \B — с позицией, не являющейся границей. Например, ^\d+$ совпадёт со строкой, состоящей только из цифр, а \bкот\b найдёт слово «кот», но не «кот» внутри «котёнок». Якоря часто ошибочно принимают за матчеры символов — на самом деле они совпадают с позициями в тексте, а не с конкретными символами.

Что такое квантификаторы в regex?

Квантификаторы указывают, сколько раз предыдущий токен может повторяться: * — ноль или больше, + — один или больше, ? — ноль или один (опционально), {n} — ровно n, {n,} — n или больше, {n,m} — от n до m. По умолчанию они жадные (захватывают как можно больше); добавьте ? для ленивого режима. Например \d{1,3} совпадёт с 1–3 цифрами, а ленивый .+? захватит как можно меньше. Ленивые квантификаторы необходимы при совпадении с HTML-тегами или строками в кавычках.

Что такое группы и группы захвата?

Скобки (…) создают группу захвата, которую можно извлечь или использовать повторно — (\d{4})-(\d{2}) захватывает год в группу 1 и месяц в группу 2 из «2024-06». Используйте (?:…) для группы без захвата, когда группировка нужна только для квантификатора, и (?<name>…) для именованной группы, например (?<год>\d{4}). Обратная ссылка \1 повторно совпадёт с тем, что захватила группа 1, поэтому (\w)\1 найдёт удвоенную букву — «лл» в слове «аллея».

Что такое опережающая и ретроспективная проверки?

Проверки окружения утверждают, что текст есть (или нет) рядом с вашим совпадением, не потребляя его. (?=…) — положительная опережающая проверка, (?!…) — отрицательная, (?<=…) — положительная ретроспективная, (?<!…) — отрицательная ретроспективная. Например, \d+(?=px) найдёт 5 в «5px», не включая «px», а (?<=₽)\d+ найдёт 9 в «₽9», требуя наличия знака рубля перед числом. Проверки окружения — одна из функций, отличающих современные движки regex от POSIX grep.

Что такое флаги регулярных выражений?

Флаги изменяют применение всего паттерна: g (global) находит каждое совпадение, i делает поиск нечувствительным к регистру, m (multiline) заставляет ^ и $ совпадать с каждой строкой, s (dotall) позволяет . совпадать с переводами строк, u включает полную поддержку Unicode, y (sticky) привязывает совпадение к фиксированной позиции. В JavaScript они добавляются после закрывающего слэша: /кот/gi найдёт «Кот» и «КОТ» везде в тексте. Тестер на этой странице имеет кнопки-переключатели для каждого флага, чтобы вы могли увидеть эффект вживую.

Как написать regex для email, номера телефона или URL?

Практичные отправные паттерны: email — [\w.+-]+@[\w-]+\.[\w.-]+ ; URL — https?:\/\/[^\s]+ ; российский телефон — (?:\+7|8)[-.\s]?\(?\d{3}\)?[-.\s]?\d{3}[-.\s]?\d{2}[-.\s]?\d{2}, который найдёт как +7 (495) 123-45-67, так и 8 495 123 45 67. Это прагматичные, а не исчерпывающие варианты — официальный стандарт email намного сложнее, — поэтому всегда проверяйте их на реальных данных с живым тестером выше, где каждый паттерн доступен одним кликом в списке типовых паттернов.

Как экранировать специальные символы в regex?

Поставьте обратный слэш перед любым метасимволом, чтобы совпасть с ним буквально. Символы, которые обычно нужно экранировать: . ^ $ * + ? ( ) [ ] { } | \ и /. Например, \. совпадёт с буквальной точкой, а \$ — со знаком доллара, поэтому \d+\.\d{2} найдёт цену вроде 19.99. Внутри символьного класса большинство из них теряют особое значение, поэтому [.] тоже совпадёт с буквальной точкой без экранирования.

Чем отличается regex в JavaScript, Python и Java?

Основной синтаксис общий, но детали различаются. В JavaScript группы именуются как (?<name>…), в Python — как (?P<name>…); Python использует «сырые строки» r"\d+", а Java требует удвоенных обратных слэшей в строковых литералах ("\\d+"). Режим dotall в JS — флаг s, в Python — re.DOTALL, в Java — Pattern.DOTALL. Таблица диалектов на этой странице резюмирует различия для Python, Java, PCRE и grep, чтобы вы могли уверенно переносить паттерны между языками.

Как использовать регулярные выражения в Python?

В Python регулярные выражения находятся во встроенном модуле re. Обычно паттерн записывается как «сырая строка», и вызываются функции вроде re.search, re.findall или re.sub — например re.findall(r"\d+", "a1 b22") вернёт ['1', '22']. Именованные группы используют синтаксис (?P<name>…), а читать их можно через match.group('name'). Справочник токенов на этой странице напрямую применим к regex Python; отличаются только окружающий API и несколько названий флагов по сравнению с JavaScript.

Как протестировать регулярное выражение?

Используйте живой тестер в верхней части страницы: введите паттерн между слэшами, переключите нужные флаги и вставьте тестовую строку. Совпадения подсвечиваются в реальном времени, каждая нумерованная и именованная группа захвата отображается отдельно, а некорректный паттерн показывает встроенное сообщение об ошибке вместо молчаливого сбоя — всё работает локально в браузере, поэтому ничего из введённого не загружается. Аналогичные инструменты — regex101.com и regexr.com; эта страница объединяет справочник и тестер на одной странице.

Чем эта страница отличается от regex101.com и regexr.com?

regex101.com — отраслевой стандарт для глубокой отладки regex: поддерживает несколько диалектов (PCRE, Python, Java, .NET, Golang) и даёт детальное объяснение каждого токена в паттерне. regexr.com предлагает схожий опыт с библиотекой паттернов от сообщества. Оба — отличные специализированные инструменты. Шпаргалка UtiloKit отличается: она объединяет таблицу токенов с базовым живым тестером на одной странице, чтобы вы могли найти нужное и проверить за секунды, не переключая вкладки. Для сложной production-отладки regex детальный отладчик regex101.com незаменим; для быстрых справок в ходе разработки эта страница загружается быстрее и не требует навигации.

Почему это называется «регулярное выражение»?

Название происходит из теории формальных языков. В 1950-х годах математик Стивен Кини описал «регулярные множества» — языки, которые может распознать простой конечный автомат, — и используемая им нотация стала известна как регулярное выражение. Современные движки regex добавляют возможности, такие как обратные ссылки и проверки окружения, выходящие за рамки строго «регулярных» языков, но историческое название закрепилось.