Regex-тестер
Тестируйте JavaScript-регулярки на любой строке и сразу видите совпадения с подсветкой. Группы, флаги и позиции — в списке снизу.
Используется встроенный RegExp браузера, так что результат совпадает с тем, что выполнит ваш JS-код.
С подсветкой
Совпадения
Match list with capture groups will appear here.
Сорт JavaScript
Этот тестер использует встроенный RegExp браузера. Он поддерживает синтаксис регулярок ECMAScript, который не совпадает с PCRE (PHP, Perl) или Python re. Некоторые конструкции из других движков недоступны или ведут себя иначе:
- No possessive quantifiers (
a*+,a++). - No atomic groups
(?>...). - No conditional patterns
(?(1)yes|no). - Lookbehind
(?<=...)is supported in modern browsers but can fail in older engines. - Named groups use
(?<name>...)(not(?P<name>...)like Python).
Справка по флагам
g— return all matches, not just the first.i— case-insensitive match.m—^and$match at line breaks, not only string edges.s— dot.also matches newlines.u— full Unicode mode;\p{...}property escapes enabled.y— sticky: match must start exactly atlastIndex.
Примеры
Несколько паттернов, которые можно вставить в поле выше, чтобы увидеть, как они работают:
\d{4}-\d{2}-\d{2} # ISO-like dates
[\w.+-]+@[\w-]+\.[\w.-]+ # rough email
^https?:\/\/\S+ # URL at line start (needs m flag)
(?<year>\d{4})-(?<mo>\d{2}) # named groupsЧастые вопросы
Почему мой паттерн, работающий в PHP/Python, здесь падает?
Этот тестер прогоняет паттерн через браузерный RegExp — это ECMAScript flavor. PCRE-фичи (possessive-квантификаторы, атомарные группы, conditional patterns) не поддерживаются. Перепишите паттерн в форме ECMAScript.
Мой паттерн на секунду заморозил страницу. Почему?
Движок regex в JavaScript однопоточный и может тормозить на паттернах с catastrophic backtracking (например, вложенные квантификаторы вроде (a+)+$). Инструмент ограничивает список матчей до 1000, чтобы уменьшить ущерб, но сам матч всё равно идёт на странице.
Как сопоставлять по нескольким строкам?
Используйте флаг s, чтобы . сопоставлялся с переводами строк, и флаг m, чтобы ^/$ привязывались к каждой строке.
Отправляются ли мой паттерн и тестовый текст куда-нибудь?
Нет. Регулярка прогоняется целиком в браузере. Ничего не загружается.