This pattern has 2 capturing groups with 2 flags (gi) and is broken down into 14 parts below.
Flags
gglobal - find all matches in the input, not just the first oneiignore case - letters match regardless of upper or lower case^Start-of-string anchor (or start of a line with the m flag)(?<user>Start of a named capturing group "user" - saves its match under that name[a-z0-9._%+-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "_", the character "%", the character "+", the character "-"+Repeated one or more times)End of the group@A literal "@" character(?<domain>Start of a named capturing group "domain" - saves its match under that name[a-z0-9.-]A single character from the set: the range "a" to "z", the range "0" to "9", the character ".", the character "-"+Repeated one or more times\.A literal "." character (the backslash removes its special meaning)[a-z]A single character from the set: the range "a" to "z"{2,}Repeated 2 or more times)End of the group$End-of-string anchor (or end of a line with the m flag)
Объяснение регулярного выражения принимает регулярное выражение и переводит его на простой английский, по одной конструкции за раз. Вместо того, чтобы прищуриться от плотной линии, такой как ^(?<user>[A-Z0-9._%+-]+)@... Вы получаете маркировку: эта часть является якорем, это именованная группа захвата, этот класс символов означает «строчная буква, цифра, точка или дефис», и этот квантор означает «один или несколько раз». Он превращает стену символов в контрольный список, который вы можете прочитать.
Регулярные выражения компактны по дизайну, что делает их мощными, но их трудно рассмотреть. Один и тот же паттерн может быть написан многими способами, и один бродячий обратный слэш или жадный квантор полностью меняют значение. Чтение незнакомого регулярного выражения — в обзоре кода, старого файла конфигурации или ответа переполнения стека — обычно означает мысленную симуляцию движка. Этот инструмент выполняет эту моделирование для вас и показывает результат в виде упорядоченного списка с отступом, который отражает структуру шаблона, включая вложенные группы и осмотры.
Все работает на стороне клиента на одном и том же движке JavaScript regexp, который использует ваш код, поэтому поведение флага и достоверность, которые вы видите здесь, соответствуют Производству. Ваш шаблон никогда не загружается, ничего не регистрируется, и инструмент продолжает работать в автономном режиме после загрузки страницы. Это имеет значение, когда регулярные выражения, которые вы пытаетесь понять, поступает из частной кодовой базы или соответствует форматам конфиденциальных данных.
Объяснитель говорит вам, что говорит шаблон, а не то, является ли это правильным шаблоном для ваших данных — проверить это, запустить его против реального ввода в тестер регулярного выражения. Поскольку он компилируется с собственным движком браузера, конструкции, которые существуют в PCRE, но не в ECMAScript, ведут себя двумя разными способами. Притяжательные кванторы, такие как A++, атомные группы (?>...) и рекурсия (?r) прямые, с собственным сообщением движка. Более тонкий случай: \A и \Z: без флага U, без javascript, рассматривает их как избегание идентификации, поэтому шаблон, скопированный с PHP или Python, объясняется как соответствующее литералу A или Z, а не границе строки, и ошибка не возникает. Вложенные квантификаторы, такие как (A+)+, также описаны нормально; катастрофическое возвращение — это свойство runtime для входа, а не что-то видимое в структуре.
Введите узор без окружающих косых черт — только само выражение. Нажмите Загрузить образец, чтобы начать с работающего примера сопоставления электронной почты.
Переключите флаги, используемые узором (G, i, M, S, U, Y, D). Объяснитель сообщает, что делает каждый флаг, и проверяет шаблон по отношению к этой комбинации флага.
Каждый токен указан в порядке с английским описанием. Вложенные группы отступы, поэтому структура шаблона видна с первого взгляда.
Скопируйте полную разбивку в виде простого текста, чтобы вставить в комментарий кода, записку с запросом на вытягивание или документацию, чтобы следующему читателю не пришлось его декодировать.
Каждый привязка, класс символов, квантификатор, группа и escape получают свою собственную строку с описанием, в том порядке, в котором их движок читает
Захват, не захват, именованные группы и все четыре типа lookarcat маркируются и отступы, поэтому вложенную структуру легко следовать
Флаги G, I, M, S, U, Y и D описаны в контексте, поэтому вы понимаете, как они меняют все совпадение, а не только синтаксис.
Шаблоны проверяются с помощью собственного движка REGEXP браузера, поэтому недопустимое выражение выявляется с точной ошибкой, прежде чем вы будете полагаться на него
Extract email addresses, URLs, phone numbers, and IPv4 addresses from any block of text. De-duplicate, sort, and copy the results. Runs client-side.
Find and replace text with a regular expression, using capture group backreferences like $1 and named groups, with full flag support
Test regular expressions against sample text with live match highlighting, capture groups, and full flag support
Build, test, and debug regular expressions with real-time matching and a comprehensive cheatsheet
0 comments
No comments yet. Be the first to share your thoughts!