Scriptular — Редактор регулярных выражений Javascript
Регулярное выражение:
//Тестовые строки:
Scriptular — редактор регулярных выражений JavaScript. Вдохновленный Rubular, он дает вам простой способ тестировать регулярные выражения javascript по мере их написания.
Начните с ввода регулярного выражения, а затем тестовой строки. Или попробуйте этот пример.
Узнайте больше о регулярных выражениях в javascript.
Нет совпадений
Недопустимое регулярное выражение
Результаты совпадений:
Группы совпадений:
Поделиться ссылкой:
- Поделитесь этим регулярным выражением
г | Выполнить глобальное сопоставление |
---|---|
и | Выполнить сопоставление без учета регистра |
м | 9и $) при работе с несколькими строками|
и | Рассматривайте шаблон как серию кодовых точек Unicode. |
у | Липкий; обрабатывать шаблон после совпадения как отдельный шаблон |
Кронштейны:
[абв] | Совпадение с одним символом a, b или c 9 | Начало строки |
$ | Конец строки | |
. | Соответствует любому символу | |
\ш | Сопоставьте символ слова | |
\Вт | Совпадение с символом, не являющимся словом | |
\д | Совпадение с цифрой | |
\Д | Совпадение с любым нецифровым символом | |
\с | Совпадение с пробельным символом | |
\С | Совпадение с непробельным символом | |
\б | Символ совпадения в начале или конце слова | |
\В | Совпадает с символом не в начале и не в конце слова | |
\0 | Совпадение с символом NUL | |
\т | Совпадение с символом табуляции | |
\xxx | Совпадение с символом, указанным восьмеричным числом xxx | |
\хдд | Совпадение с символом, заданным шестнадцатеричным числом дд | |
\uxxxx | Совпадает с символом Unicode, указанным шестнадцатеричным числом xxxx |
Квантификаторы
n+ | Совпадение хотя бы с одним n |
нет* | Совпадение с нулем или более n |
нет? | Совпадение с нулем или единицей n |
п{Х} | Совпадение последовательности Xn |
п{Х,У} | Совпадение последовательности от X до Y n |
н{Х,} | Совпадение с последовательностью из X или более n |
Язык регулярных выражений — краткий справочник
- Статья
Регулярное выражение — это шаблон, которому механизм регулярных выражений пытается сопоставить входной текст. Шаблон состоит из одного или нескольких символьных литералов, операторов или конструкций. Краткое введение см. в разделе Регулярные выражения .NET.
В каждом разделе этого краткого справочника перечислены определенные категории символов, операторов и конструкций, которые можно использовать для определения регулярных выражений.
Мы также предоставили эту информацию в двух форматах, которые вы можете скачать и распечатать для удобства:
- Скачать в формате Word (.docx)
- Скачать в формате PDF (.pdf)
Экранирование символов
Символ обратной косой черты (\) в регулярном выражении указывает, что символ, следующий за ним, либо является специальным символом (как показано в следующей таблице), либо должен интерпретироваться буквально. Дополнительные сведения см. в разделе Экранирование символов.
Экранированный символ | Описание | Узор | Совпадения |
---|---|---|---|
\а | Соответствует символу колокольчика, \u0007. | \а | "\u0007" в "Ошибка!" + '\ u0007' |
\б | В классе символов соответствует символу возврата, \u0008. | [\b]{3,} | "\b\b\b\b" в "\b\b\b\b" |
\т | Соответствует вкладке, \u0009. | (\ш+)\т | "item1\t" , "item2\t" в "item1\titem2\t" |
\r | Соответствует возврату каретки, \u000D. ( \r не эквивалентен символу новой строки, \n .) | \r\n(\w+) | "\r\nЭти" в "\r\nЭто\nдве строки. " |
\v | Соответствует вертикальной вкладке, \u000B. | [\v]{2,} | "\v\v\v" в "\v\v\v" |
\ф | Соответствует переводу страницы, \u000C. | [\f]{2,} | "\f\f\f" в "\f\f\f" |
\н | Соответствует новой строке, \u000A. | \r\n(\w+) | "\r\nЭти" в "\r\nЭти\nдве строки." |
\е | Соответствует побегу, \u001B. | \е | "\x001B" в "\x001B" |
\ ннн | Использует восьмеричное представление для указания символа ( | \ш\040\ш | "a b" , "c d" в "a bc d" |
\х нн | Использует шестнадцатеричное представление для указания символа ( nn состоит ровно из двух цифр). | \ш\х20\ш | "a b" , "c d" в "a bc d" |
\c X | Соответствует управляющему символу ASCII, который указан как X или x , где X или x — это буква управляющего символа. | \кС | "\x0003" в "\x0003" (Ctrl-C) |
\и нннн | Соответствует символу Unicode, используя шестнадцатеричное представление (ровно четыре цифры, представленные nnnn ). | \w\u0020\w | "a b" , "c d" в "a bc d" |
\ | Если за ним следует символ, который не распознается как escape-символ в этой и других таблицах этого раздела, соответствует этому символу. Например, \* совпадает с \x2A и \. совпадает с \x2E . Это позволяет обработчику регулярных выражений устранять неоднозначность языковых элементов (таких как * или ?) и символьных литералов (представленных \* или \? ). | \d+[\+-x\*]\d+ | "2+2" и в "(2+2) * 3*9" |
Классы символов
Класс символов соответствует любому из набора символов. Классы символов включают языковые элементы, перечисленные в следующей таблице. Дополнительные сведения см. в разделе Классы символов.
Класс символов | Описание | 9ай] "р" , "г" , "н" в "царствование" | |
---|---|---|---|
[ первый - последний ] | Диапазон символов: соответствует любому одиночному символу в диапазоне от первых до последних . | [А-Я] | "А" , "В" в "AB123" |
. | Подстановочный знак: соответствует любому одиночному символу, кроме \n . Чтобы совпасть с буквальным символом точки (. или | до | "авеню" в "ступицу" |
\p{ имя } | Соответствует любому одиночному символу в общей категории Unicode или именованному блоку, заданному имя . | \p{Lu} | "C" , "L" в "City Lights" |
\P{ имя } | Соответствует любому одиночному символу, не входящему в общую категорию Unicode или именованный блок, указанный в name . | \P{Лу} | "и" , "т" , "у" в "Город" |
\ш | Соответствует любому символу слова. | \ш | "I" , "D" , "A" , "1" , "3" в "ID A1.3" |
\Ш | Соответствует любому символу, не являющемуся словом. | \Вт | "" , "." в "ID A1.3" |
| Соответствует любому символу пробела. | | "D" в "ID A1.3" |
\С | Соответствует любому символу, отличному от пробела. | \с\с | "_" в "int __ctr" |
\д | Соответствует любой десятичной цифре. 9\д{3} | "901" в "901-333-" | |
$ | По умолчанию совпадение должно находиться в конце строки или перед \n в конце строки; в многострочном режиме он должен располагаться до конца строки или до \n в конце строки. | -\d{3}$ | "-333" в "-901-333" |
\А | Совпадение должно происходить в начале строки. | \А\д{3} | "901" в "901-333-" |
\З | Совпадение должно находиться в конце строки или перед \n в конце строки. | -\d{3}\Z | "-333" в "-901-333" |
\з | Совпадение должно находиться в конце строки. | -\d{3}\z | "-333" в "-901-333" |
\Г | Совпадение должно произойти в точке, где закончилось предыдущее совпадение, или, если предыдущего совпадения не было, в позиции в строке, где началось сопоставление. | \Г\(\д\) | "(1)" , "(3)" , "(5)" в "(1)(3)(5)[7](9)" |
\б | Совпадение должно происходить на границе между символом \w (буквенно-цифровой) и символом \W (не буквенно-цифровой). | \b\w+\s\w+\b | "тема их" , "тема их" в "тема их их" |
\Б | Совпадение не должно происходить на границе \b . | \Изгиб\w*\b | "концы" , "концы" в "конец посылает терпеть кредитору" |
Конструкции группировки
Конструкции группировки очерчивают подвыражения регулярного выражения и обычно захватывают подстроки входной строки. Группирующие конструкции включают языковые элементы, перечисленные в следующей таблице. Дополнительные сведения см. в разделе Конструкции группировки.
Группирующая конструкция | Описание | Узор | Совпадения |
---|---|---|---|
( подвыражение ) | Захватывает совпавшее подвыражение и присваивает ему порядковый номер, отсчитываемый от единицы. | (\ш)\1 | "ее" в "глубокий" |
(?< имя > подвыражение ) или (?' 9044 0 имя ' подвыражение ) | Захватывает совпавшее подвыражение в именованную группу. | (?<двойной>\w)\k<двойной> | "ее" в "глубокий" |
(?< имя1 - имя2 > подвыражение ) 9116 2 или (?' имя1 - имя2 ' подвыражение 9((1-3)*(3-1))" | |||
(?: подвыражение ) | Определяет незахватываемую группу. | Запись(?:Строка)? | "WriteLine" в "Console.WriteLine()" |
(?imnsx-imnsx: подвыражение ) | Применяет или отключает указанные параметры в течение подвыражение . Дополнительные сведения см. в разделе Параметры регулярных выражений. | А\d{2}(?i:\w+)\b | "A12xl" , "A12XL" в "A12xl A12XL a12xl" |
(?= подвыражение ) | Утверждение положительного просмотра вперед нулевой ширины. | \b\w+\b(?=.+и.+) | "кошки" , "собаки" в "кошки, собаки и некоторые мыши". |
(?! подвыражение ) | Утверждение отрицательного просмотра вперед нулевой ширины. | \b\w+\b(?!.+и.+) | "и" , "некоторые" , "мыши" в "кошки, собаки и некоторые мыши". |
(?<= подвыражение ) | Утверждение положительного ретроспективного просмотра нулевой ширины. | \b\w+\b(?<=.+и.+) ——————————— | "некоторые" , "мыши" в "кошки, собаки и некоторые мыши". ———————————— «и» , «некоторые» , «мыши» в «кошки, собаки и некоторые мыши». |
(? подвыражение | Отрицательное утверждение ретроспективного просмотра нулевой ширины. | \b\w+\b(? | "кошки" , "собаки" , "и" в "кошки, собаки и некоторые мыши". ———————————— «кошки» , «собаки» в «кошки, собаки и некоторые мыши». |
(?> подвыражение ) | Атомная группа. | (?>а|аб)с | "ac" в "ac" ничего в |
Обзоры с первого взгляда
Когда обработчик регулярных выражений встречает выражение поиска , он берет подстроку, идущую от текущей позиции до начала (просмотр назад) или конца (просмотр вперед) исходной строки, а затем выполняет Regex.IsMatch для этой подстроки, используя шаблон поиска. Затем успешность результата этого подвыражения определяется тем, является ли это утверждение положительным или отрицательным.
Осмотр | Имя | Функция |
---|---|---|
(?=проверить) | Положительный прогноз | Утверждает, что то, что следует сразу за текущей позицией в строке, является «проверкой». |
(?<=проверить) | Положительный просмотр назад | Утверждает, что то, что непосредственно предшествует текущей позиции в строке, является «проверкой». |
(?!проверить) | Отрицательный прогноз | Утверждает, что то, что следует сразу за текущей позицией в строке, не является «проверкой». |
(? | Отрицательный ретроспективный просмотр | Утверждает, что то, что непосредственно предшествует текущей позиции в строке, не является «проверкой». |
После совпадения атомарных групп не будут повторно оцениваться, даже если оставшаяся часть шаблона не удалась из-за совпадения. Это может значительно улучшить производительность, когда квантификаторы встречаются в атомарной группе или в остальной части шаблона.
Квантификаторы
Квантификатор указывает, сколько экземпляров предыдущего элемента (который может быть символом, группой или классом символов) должно присутствовать во входной строке, чтобы произошло совпадение. Квантификаторы включают языковые элементы, перечисленные в следующей таблице. Для получения дополнительной информации см. Квантификаторы.
Квантификатор | Описание | Узор | Совпадения |
---|---|---|---|
* | Соответствует предыдущему элементу ноль или более раз. | а.*к | "abcbc" в "abcbc" |
+ | Соответствует предыдущему элементу один или несколько раз. | "быть+" | "пчела" в "был" , "быть" в "согнутый" |
? | Соответствует предыдущему элементу ноль или один раз. | "рай?" | "рай" в "дождь" |
{ п } | Соответствует предыдущему элементу ровно n раз. | ",\d{3}" | ",043" в "1,043,6" , ",876" , ",543" и ",210" в "9,876,5 43 210 дюймов |
{ п ,} | Соответствует предыдущему элементу не менее n раз. | "\d{2,}" | "166" , "29" , "1930" |
{ с , м } | Соответствует предыдущему элементу не менее n раз, но не более m раз. | "\d{3,5}" | "166" , "17668" |
*? | Соответствует предыдущему элементу ноль или более раз, но как можно меньше раз. | а.*?с | "abc" в "abcbc" |
+? | Соответствует предыдущему элементу один или несколько раз, но как можно меньше раз. | "быть+?" | "быть" в "был" , "был" в "согнут" |
?? | Соответствует предыдущему элементу ноль или один раз, но как можно меньше раз. | "рай??" | "ра" в "дождь" |
{ п }? | Соответствует предыдущему элементу ровно n раз. | ",\d{3}?" | ",043" в "1,043,6" , ",876" , ",543" и ",210" в "9,876,54 3210 дюймов |
{ п ,}? | Соответствует предыдущему элементу не менее n раз, но как можно меньше раз. | "\d{2,}?" | "166" , "29" , "1930" |
{ № , м }? | Соответствует предыдущему элементу между n и m раз, но как можно меньше раз. | "\d{3,5}?" | "166" , "17668" |
Конструкции обратной ссылки
Обратная ссылка позволяет впоследствии идентифицировать ранее совпавшее подвыражение в том же регулярном выражении. В следующей таблице перечислены конструкции обратной ссылки, поддерживаемые регулярными выражениями в .NET. Дополнительные сведения см. в разделе Конструкции обратной ссылки.
Конструкция обратной ссылки | Описание | Узор | Совпадения |
---|---|---|---|
\ номер | Обратная ссылка. Соответствует значению нумерованного подвыражения. | (\ш)\1 | "ее" в "искать" |
\k< имя > | Именованная обратная ссылка. Соответствует значению именованного выражения. | (? | "ее" в "искать" |
Конструкции с чередованием
Конструкции с чередованием изменяют регулярное выражение, чтобы обеспечить соответствие либо/или. Эти конструкции включают языковые элементы, перечисленные в следующей таблице. Дополнительные сведения см. в разделе Конструкции чередования.
Альтернативная конструкция | Описание | Шаблон | Совпадения |
---|---|---|---|
| | Соответствует любому элементу, разделенному вертикальной чертой ( | ). | -й(е|ис|ат) | "это" , "это" в "это день". |
(?( выражение ) да | нет ) или 9 1162 (?( выражение ) да ) | Соответствует да , если шаблон регулярного выражения, обозначенный выражением , соответствует; в противном случае соответствует дополнительной детали no . выражение интерпретируется как утверждение нулевой ширины. Во избежание двусмысленности с именованной или пронумерованной группой захвата можно дополнительно использовать явное утверждение, например следующее: | (?(А)А\d{2}\b|\b\d{3}\b) | "А10" , "910" в "А10 С103 910" |
(?( наименование ) да | нет ) или 9 1162 (?( имя ) да ) | Соответствует да если имя , именованная или пронумерованная группа захвата, имеет совпадение; в противном случае соответствует необязательному no . | (? | "Собаки.jpg" , "\"Йиска играет.jpg\"" в "Собаки.jpg \"Йиска играет.jpg\"" |
Замены
Замены — это элементы языка регулярных выражений, которые поддерживаются в шаблонах замены. Дополнительные сведения см. в разделе Замены. Метасимволы, перечисленные в следующей таблице, являются атомарными утверждениями нулевой ширины.
Символ | Описание | Узор | Сменный шаблон | Строка ввода | Строка результата |
---|---|---|---|---|---|
$ номер | Заменяет подстроку, совпавшую с группой , на число . | \b(\w+)(\s)(\w+)\b | $3 $2 $1 | "раз два" | "два один" |
${ имя } | Заменяет подстроку, соответствующую именованной группе name . | \b(? | ${слово2} ${слово1} | "раз два" | "два один" |
$$ | Заменяет литерал "$". | \b(\d+)\s?USD | $$$1 | "103 доллара США" | "103 доллара" |
$& | Заменяет копию всего совпадения. | \$?\d*\.?\d+ | **$&** | "1,30 доллара" | "**1,30$**" |
$` | Заменяет весь текст входной строки до совпадения. | Б+ | $` | "AABBCC" | "ААААКК" |
$' | Заменяет весь текст входной строки после совпадения. | Б+ | $' | "AABBCC" | "ААККЦ" |
$+ | Заменяет последнюю захваченную группу. | Б+(К+) | $+ | "AABBCCDD" | "AACCDD" |
$_ | Заменяет всю входную строку. | Б+ | $_ | "AABBCC" | "AAAABBCCCC" |
Параметры регулярных выражений
Можно указать параметры, управляющие тем, как обработчик регулярных выражений интерпретирует шаблон регулярного выражения. Многие из этих параметров могут быть указаны либо встроенными (в шаблоне регулярного выражения), либо как одна или несколько констант RegexOptions. В этом кратком справочнике перечислены только встроенные параметры. Дополнительные сведения о встроенных параметрах и параметрах RegexOptions см. в статье Параметры регулярных выражений.
Вы можете указать встроенный параметр двумя способами:
- С помощью другой конструкции
(?imnsx-imnsx)
, где знак минус (-) перед параметром или набором параметров отключает эти параметры. Например,(?i-mn)
включает сопоставление без учета регистра (i
), выключает многострочный режим (m
) и выключает захват безымянных групп (n
). Параметр применяется к шаблону регулярного выражения с точки, в которой он определен, и действует либо до конца шаблона, либо до точки, где другая конструкция обращает параметр. - С помощью конструкции группировки
(?imnsx-imnsx:
подвыражение)
, которая определяет параметры только для указанной группы.
Механизм регулярных выражений .NET поддерживает следующие встроенные параметры:
Параметр | Описание | Узор | Совпадения | |
---|---|---|---|---|
и | Использовать сопоставление без учета регистра. | \b(?i)a(?-i)a\w+\b 9 и $ соответствуют началу и концу строки, а не началу и концу строки. | Пример см. в разделе «Многострочный режим» раздела «Параметры регулярных выражений». | |
нет | Не захватывать безымянные группы. | Пример см. в разделе «Только явные захваты» в параметрах регулярных выражений. | ||
с | Использовать однострочный режим. | Пример см. в разделе «Однострочный режим» в разделе «Параметры регулярных выражений». | ||
х | Игнорировать неэкранированный пробел в шаблоне регулярного выражения. | \b(?x) \d+ \s \w+ | "1 трубкозуб" , "2 кошки" в "1 трубкозуб 2 кошки IV центурионы" |
Разные конструкции
Разные конструкции либо изменяют шаблон регулярного выражения, либо предоставляют информацию о нем. В следующей таблице перечислены различные конструкции, поддерживаемые . NET. Дополнительные сведения см. в разделе Разные конструкции.
Конструкция | Определение | Пример |
---|---|---|
(?imnsx-imnsx) | Задает или отключает такие параметры, как нечувствительность к регистру в середине шаблона. Дополнительные сведения см. в разделе Параметры регулярных выражений. | \bA(?i)b\w+\b соответствует "ABA" , "Able" в "ABA Able Act" |
(?# комментарий ) | Встроенный комментарий. Комментарий заканчивается первой закрывающей скобкой. | \bA(?# Соответствует словам, начинающимся с буквы A)\w+\b |
# [до конца строки] | Комментарий X-режима. Комментарий начинается с неэкранированного # и продолжается до конца строки. | (?x)\bA\w+\b# Соответствует словам, начинающимся с A |