TR1 Regular Expressions
В этом разделе обсуждаются грамматики разных обработчиков регулярных выражений, которые поддерживает TR1.
Содержание раздела
Грамматика регулярных выражений
сводка грамматики
Семантические сведения
Соответствовать и поиск
флаги формата
Грамматика регулярных выражений
Элемент
Элемент может быть одной из следующих действий:
обычный символ это соответствует одному символу в последовательности целевого объекта.
A подстановочный знак «». это соответствует любому знаку в последовательности целевого объекта, за исключением новой строки.
A выражение в квадратных скобках, формы [«expr]», который соответствует символ или элемент параметров сортировки в последовательности целевых объектов, которая также в наборе, идентифицируемого выражением exprили в форме «[^expr]», который соответствует символ или элемент параметров сортировки в последовательности целевых объектов, которой нет в наборе, определенные выражением expr.
выражение expr могут содержать любое сочетание следующих действий:
Отдельный символ.Добавляет знак в набор, заданный by expr.
A диапазон символов формы «ch1-ch2«.Добавляет знаки, которые представляются значениями в диапазоне [закрытьch1" ch2к заданному по набору] expr.
A класс символов в форме «[:name:]».Добавляет знаки в именованном классе к набору указанному by expr.
equivalence класс в форме «[=elt=]».Добавляет элементы, которые являются упорядоченной elt к набору указанному by expr.
A упорядоченной символ в форме «[.elt.]».Добавляет элемент параметров сортировки elt к набору указанному by expr.
привязка.Привязка соответствия «^» начало последовательности целевого объекта; привязка соответствия «$» конец последовательности целевого объекта.
A группа записи формы «( часть выражения )» или «\ " ( часть выражения \)» раздела BRE и grep, которая соответствует последовательности символов в последовательности целевых объектов, которая соответствует шаблону между разделителями.
- escape-последовательности id «формы \k«, которая соответствует знаку k в последовательности целевого объекта.
Примеры
«a» соответствует последовательности «a» целевого объекта, но не соответствует последовательности «B», «b» и «c» целевого объекта.
«». соответствует всем последовательностям «a» целевого объекта, «B», «b» и «c».
«[]» b-z соответствует последовательности «b» и «c» целевого объекта, но не соответствует последовательности «a» целевого объекта или «B».
«[: low соответствует последовательности]»: «a», «b» и «c» целевого объекта, но не соответствует последовательности «B» целевого объекта.
«(a)» соответствует последовательности «a» целевого объекта и связывает группу записи 1 с самой длинной общей подпоследовательности «a», но не соответствует последовательности «B», «b» и «c» целевого объекта.
IN ECMAScript" BREи grepэлемент может быть также a обратная ссылка «формы \dd, где « dd представляет десятичное значение n, которое соответствует последовательности символов в последовательности целевых объектов, такие же, как последовательность символов, которая сопоставляется Nth группа записи.Например, «a) (\ 1 " соответствует последовательности «aa» целевого объекта, так как первая (а) группа записи соответствует первой последовательности «a», а затем \ 1 соответствует конечной последовательности «a».
IN ECMAScriptэлемент может быть одной из следующих действий:
A группа non-захвата формы «(?: часть выражения )».Соответствует последовательности символов в последовательности целевых объектов, которая соответствует шаблону между разделителями.
Ограниченный escape-выражения формата файлов «формы \ f», «\ n» и «\ r», «\ t» или «\ v».Эти веб-каналы формы, соответствуют возврату каретки, перевода строки, горизонтальной и вертикальной вкладке вкладке соответственно, в последовательности целевого объекта.
A положительный assert формы «(? = часть выражения )».Соответствует последовательности символов в последовательности целевых объектов, которая соответствует шаблону между разделителями, но не изменяет положение совпадения в последовательности целевого объекта.
A недостаток assert формы «(?!часть выражения )».Соответствует любой последовательности символов в последовательности целевых объектов, которая не соответствует шаблону между разделителями, и не изменяет положение совпадения в последовательности целевого объекта.
A шестнадцатеричную escape-последовательность \ x «формыhh«.Соответствует знаку в последовательности целевых объектов, которая представлена 2 которым следуют шестнадцатеричные цифры hh.
A escape-последовательность Юникода \ u «формыhhhh«.Соответствует знаку в последовательности целевых объектов, которая представлена 4 которым следуют шестнадцатеричные цифры hhhh.
A управляющая escape-последовательность «формы \ ck«.Соответствует символу, управляющему с именем знака k.
A граница машинного слова assert «формы \ b».Совпадения при текущую позицию в последовательности целевых объектов сразу же после a граница машинного слова.
A отрицательная граница машинного слова assert «формы \ B».Совпадения при текущую позицию в последовательности целевых объектов не сразу же после a граница машинного слова.
A escape-последовательность DSW «формы \ d», «D», «\ \ s», «\ s», «\ w», «\ w».Предоставляет краткое имя класса символов.
Примеры
«(?: a)» соответствует последовательности «a» целевого объекта, но «(?: ), а \ 1 " недопустимо, так как нет записи группу 1.
«(? =a)» соответствует последовательности «a» целевого объекта.Положительный утверждения, соответствующего исходная последовательность «a» в последовательности целевых объектов и выпускных экзаменах «a» в регулярном выражении соответствует первой последовательности «a» в последовательности целевого объекта.
(?! «a)» не соответствует последовательности «a» целевого объекта.
«a B» \. «a~» соответствует последовательности целевых объектов, но не соответствуют последовательности «ab» целевого объекта.
«a B» \. «ab» соответствует последовательности целевых объектов, но не соответствуют последовательности «a~» целевого объекта.
IN awkэлемент может быть одной из следующих действий:
A escape-выражения формата файлов формы «\ \», «\», «\ b», «\ f», «\ n» и «\ r», «\ t» или «\ v».Они соответствуют обратной косой чертой, оповестят, возвращают, каналы формы, перевода строки и возврата каретки, горизонтальная табуляция и вертикальная табуляция, соответственно, в последовательности целевого объекта.
восьмеричная escape-последовательность «формы \ooo«.Соответствует знаку в последовательности целевых объектов представление которой значение, представленное, 2 или 3 восьмиштырьковыми числами ooo.
повторение
Любой элемент, кроме a положительный asserta недостаток assertили привязка за функцией может следовать число повторений.Самым распространенным типом числа повторений принимает форму «{min"max}» или «\ {min"max\ f12 внутри} BRE и grep.Элемент, который следует за данной формой числа повторений соответствующий хотя бы min последовательных вхождений и больше нет max последовательных вхождений последовательности, соответствующий элементу.Например, «a {2,3}» соответствует последовательности «aa» целевого объекта и последовательности «aaa» целевого объекта, но не «a» целевого объекта последовательности или последовательности «aaaa» целевого объекта.
Количество повторений может также принимать одну из следующих форм:
{«min}» или «\ {min\ f12 внутри} BRE и grep.Эквивалентом «{min"min}».
{«min,}» или «\ {min" \» в пределах} BRE и grep.Эквивалентом «{min" unbounded».}
"*".Эквивалентом «{0,}» unbounded.
Примеры
«a {2}» соответствует последовательности «aa» целевого объекта, но не «a» целевого объекта последовательности или последовательности «aaa» целевого объекта.
«a {2,}» соответствует последовательности «aa» целевого объекта, то последовательность «aaa» целевого объекта и т д, но не соответствует последовательности «a» целевого объекта.
«a*» соответствует "" последовательности целевого объекта последовательности «a» целевого объекта, то последовательность «aa» целевого объекта и т д
Для всех грамматик исключение BRE и grepколичество повторений может также принимать одну из следующих форм:
«?».Эквивалентом «{0,1}».
«+».Эквивалентом «{1,}» unbounded.
Примеры
«a?» соответствует "" последовательности целевых объектов и последовательности «a» целевого объекта, но не последовательности «aa» целевого объекта.
«a+» соответствует последовательности «a» целевого объекта, то последовательность «aa» целевого объекта и т д, но не "" последовательности целевого объекта.
IN ECMAScriptвсе формы числа повторений может следовать символа «? », который обозначает a non-жадное повторение.
Сцепление
Элементы регулярных выражений, с или без количество повторенийможет быть сцепленно для формирования более длинные регулярные выражения.Результирующее выражение соответствует последовательности целевых объектов, объединение последовательностей, которые совпадают отдельными элементами.например, «a {2,3} b» соответствует последовательности «aab» целевого объекта и последовательности «aaab» целевого объекта, но не соответствует последовательности «ab» целевого объекта или последовательности «aaaab» целевого объекта.
Чередование
Во всех грамматиках регулярных выражений исключение BRE и grep, представляющая собой сцепленное регулярное выражение может следовать символа «|» и другие сцепленное регулярное выражение.Любое количество сцепленных регулярных выражений можно объединить подобным образом.Результирующее выражение соответствует любой последовательности целевых объектов, которая соответствует одному или нескольким из сцепленных регулярных выражений.
При более одного из сцепленных регулярных выражений соответствует последовательности целевого объекта ECMAScript выбирает первый из сцепленных регулярных выражений, которое соответствует последовательности совпадение (какпервое совпадение); другие грамматики регулярных выражений команду выбрать одно, достигает наиболее долго соответствие.например, «ab|компактный диск» соответствует последовательности «ab» целевого объекта и последовательности «компактному диск» целевого объекта, но не соответствует последовательности «abd» целевого объекта или последовательности «acd» целевого объекта.
IN grep и egrepзнак новой строки (\ n ") используется для разделения constructs.
часть выражения
IN BRE и grepчасть выражения соединения.В других грамматиках регулярного выражения, часть выражения чередование.
сводка грамматики
В следующей таблице перечислены функции, доступные в различных грамматиках регулярных выражений, предоставленных TR1:
Элемент |
BRE |
ERE |
ECMA |
grep |
egrep |
awk |
---|---|---|---|---|---|---|
чередование с помощью «|» |
+ |
+ |
+ |
+ |
||
чередование с помощью «\ n» |
+ |
+ |
||||
привязка |
+ |
+ |
+ |
+ |
+ |
+ |
обратная ссылка |
+ |
+ |
+ |
|||
выражение в квадратных скобках, |
+ |
+ |
+ |
+ |
+ |
+ |
группа записи с помощью «()» |
+ |
+ |
+ |
+ |
||
группа записи с помощью «\ (\)» |
+ |
+ |
||||
управляющая escape-последовательность |
+ |
|||||
escape-последовательность DSW |
+ |
|||||
escape-выражения формата файлов |
+ |
+ |
||||
шестнадцатеричную escape-последовательность |
+ |
|||||
escape-последовательности id |
+ |
+ |
+ |
+ |
+ |
+ |
недостаток assert |
+ |
|||||
отрицательная граница машинного слова assert |
+ |
|||||
группа non-захвата |
+ |
|||||
non-жадное повторение |
+ |
|||||
восьмеричная escape-последовательность |
+ |
|||||
обычный символ |
+ |
+ |
+ |
+ |
+ |
+ |
положительный assert |
+ |
|||||
повторение, используя «{}» |
+ |
+ |
+ |
+ |
||
повторение, используя «\ \ {}» |
+ |
+ |
||||
повторение с помощью «*» |
+ |
+ |
+ |
+ |
+ |
+ |
повторение, используя «?» и «+» |
+ |
+ |
+ |
+ |
||
escape-последовательность Юникода |
+ |
|||||
подстановочный знак |
+ |
+ |
+ |
+ |
+ |
+ |
граница машинного слова assert |
+ |
Семантические сведения
Привязка
Привязка соответствует позиции в строке целевого объекта не символа.«^» Соответствует началу строки целевого объекта и «$» соответствует концу строки целевого объекта.
обратная ссылка
Обратная ссылка обратная косая черта, следующее за действием N. десятичного значения.Она соответствует содержимому Nth группа записи.Значение n не должно превышать количество групп записи, которые предшествуют обратную ссылку.IN BRE и grepзначение десятичным разрядом, n определяется после обратной косой черты.IN ECMAScriptзначение всеми десятичными разрядами, n определяется сразу за обратной косой чертой.Поэтому в пределах BRE и grepзначение n не более 9, даже если регулярное выражение имеет более 9 групп записи.IN ECMAScriptзначение n unbounded.
Примеры
a+ «(() (b+))) (c+ \ 3" соответствует последовательности «aabbbcbbb» целевого объекта.Обратная ссылка «\ 3 " соответствует тексту в третьей группе записей, т е b+ «()».Он не соответствует последовательности «aabbbcbb» целевого объекта.
«\ 2 " (a), недопустимы.
«(b (((((((((a))))))))))\ 10 " имеет различные значения в BRE и in ECMAScript.IN BRE обратная ссылка «\ 1".Обратная ссылка совпадает с содержимым первой группы записи (то есть одного которым начинается с «(b» и заканчивается на выпускными экзаменами ")», предшествующему столетию обратной ссылкой) и конечное значение «0 " соответствует обычному символ «0 ".IN ECMAScript, обратная ссылка «\ 10".Она соответствует десятой группе записей, то есть, самый внутренний одному ".
Выражение в квадратных скобках,
Выражение в квадратных скобках определяет набор символов и упорядоченной элементы.Если выражение в квадратных скобках, начинается с символа «^» совпадением будет выполнено успешно, если отсутствуют элементы в наборе не соответствуют текущему символу в последовательности целевого объекта.В противном случае сопоставление выполняется успешно, если какой-либо из элементов в наборе соответствует текущему символу в последовательности целевого объекта.
Набор символов можно определить с помощью перечисления любое сочетание отдельные символы" диапазоны символов" классы символов" equivalence классыи упорядоченной символы.
группа записи
Метки групп записи его содержимое как единый модуль, в грамматике и метках регулярных выражений текст целевого объекта, которое соответствует его содержимым.Метка, связанная с каждой группой записи номер, подсчет скобки, указывающее, что группы открытие записи метки до включения скобки, которая помечает текущую группу открытие записи.В этой реализации максимальное количество групп записи 31.
Примеры
«ab+» соответствует последовательности «abb» целевого объекта, но не соответствует последовательности «abab» целевого объекта.
ab «() +» не соответствует последовательности «abb» целевого объекта, но соответствует последовательность «abab» целевого объекта.
a+ «(() (b+))(c+)» соответствует последовательности «aabbbc» целевого объекта и связывает группу записи с самой длинной общей подпоследовательности «1» aabbb группа записи 2 с самой длинной общей подпоследовательности «aa», группа записи 3 с «bbb» и группа записи 4 с самой длинной общей подпоследовательности «c».
Класс символов
Класс символов в выражение в квадратных скобках добавляет все символы в именованном классе в символьный - установка, определяется выражение в квадратных скобках.Чтобы создать класс символов, используйте «[: » следовать за которым следует имя класса «:]».Внутренне имена классов символов, вызвав id = traits.lookup_classname.Символ ch принадлежит к такому классу, если traits.isctype(ch, id) возвращает значение true.значение по умолчанию regex_traits шаблон поддерживает имена классов в следующей таблице.
Имя класса |
Описание |
---|---|
«alnum» |
буква в нижнем регистре, прописные буквы и числа |
альфа-версия» « |
буква в нижнем регистре и прописные буквы |
«пусто» |
пробел или символ табуляции |
«cntrl» |
escape-выражения формата файлов символы |
«число» |
цифры |
«диаграмма» |
буква в нижнем регистре, прописные буквы, цифры и пунктуация |
«низкий» |
буква в нижнем регистре |
«печать» |
буква в нижнем регистре, прописные буквы, цифры, знаки препинания, а пробел |
«punct» |
пунктуация |
«пространство» |
пробел |
«функция upper |
символы верхнего регистра |
«xdigit» |
числа, «a», «b», «c», «d», «e», «f», «a», «B», «c», «D», «e», «f» |
"d" |
то же, что и количество |
"s" |
такие же, как пространство |
"w" |
то же, что и alnum |
Диапазон символов
Диапазон символов в выражение в квадратных скобках добавляет все символы в диапазоне в символьный - установка, определяется выражение в квадратных скобках.Для создания диапазон символов, поместите знак «-» между первым и последним символом в диапазоне.Это помещает в набор все символы, имеющие числовое значение, которое больше или равно числовому значению первого символа и меньше или равно числовому значению последнего символа.Обратите внимание, что этот набор добавляемых знаков представление зависит от платформа-специфического символов.Если знак «-» происходят в начале или в конце выражения в квадратных скобках, или первый или последний символ в диапазоне символов, он представляет.
Примеры
«[0-7]» представляет набор символов {«0 ", «1 ", «2 ", «3 ", «4 ", «5 ", «6 ", «7 "}.Он соответствует последовательности целевых объектов «0 ", «1 " и т д, но не «a».
В системах, использующих кодирование знаков ASCII, «[]» h-k представляет набор символов {«h», «меня», «j», «k»}.Он соответствует последовательности «h», «необходимы дополнительные» и т д, но не «целевого объекта \ x8A» или «0 ".
В системах, использующих кодирование символов EBCDIC, «[]» h-k представляет набор символов {«h», «меня», «\ x8A», «\ x8B», «\ x8C», «\ x8D», «\ x8E», «\ x8F», «\ x90», «j», «k»} (" h» кодируется как 0x88 и «k» кодируются как 0x92).Оно соответствует последовательности «h» целевого объекта, «i», «\ x8A» и т д, но не «0 ".
«[-]» 0-24 представляет набор символов {«-», «0 ", «1 ", «2 ", «4 "}.
«[]» 0-2- представляет набор символов {«0 ", «1 ", «2 ", «-»}.
В системах, использующих кодирование знаков ASCII, «[+--]» представляет набор символов {«+», «,», «-»}.
Однако если языковой стандарт-чувствительные диапазона используются символы в диапазоне, определяются правилами параметров сортировки для языкового стандарта.Символы, collate после первого символа в определении диапазона и до последнего символа в определении диапазона в наборе.2 Символа конца также в наборе.
Упорядоченной элемент
Элемент multi-знака упорядоченной последовательности, которая обрабатывается как одиночный символ.
Упорядоченной символ
Упорядоченной символ в выражении в квадратных скобках добавляет a упорядоченной элемент в набор, который определен выражение в квадратных скобках.Для создания упорядоченной символ, используйте «[». следуйте упорядоченной элементом следуйте «.]».
управляющая escape-последовательность
Управляющая escape-последовательности обратная косая черта следовать буквы «c» выполните одно из букв» до «z» или «a» до «Z».Оно соответствует управляющему символ ASCII, который называется разделах буквы.Например, «\ ci» соответствует «последовательности целевых объектов \ x09», поскольку <ctrl-я> имеет значение 0x09.
escape-последовательность DSW
Escape-последовательность класса символов DSW короткое имя, как показано в следующей таблице.
Escape-последовательности |
Класс с именем числом |
Класс, именуемый значение по умолчанию |
---|---|---|
«\ d» |
«[[: г.]]» |
«[[: число:»]] |
«\ D» |
«[^ [: г.]]» |
«[^ [: число:»]] |
\ s» |
«[[: s:»]] |
«[[: пробел:»]] |
\ S» |
«[^ [: s:»]] |
«[^ [: пробел:»]] |
«\ w» |
«[[: : w]]» |
«[a-zA-Z0-9_] * « |
«\ W» |
«[^ [: : w]]» |
[^a-zA-Z0-9_] «* « |
символ *ASCII - установка
Equivalence класс
Equivalence класс в выражение в квадратных скобках добавляет все символы и упорядоченной элементы это эквивалентно упорядоченной элементу equivalence определении класса в набор, определенный с помощью выражения в квадратных скобках.Для создания equivalence класс используется «[=», за которым следует упорядоченной элементом следуйте «=]».Внутренне 2 упорядоченной элемента elt1 и elt2 эквивалентны, если traits.transform_primary(elt1.begin(), elt1.end()) == traits.transform_primary(elt2.begin(), elt2.end()).
escape-выражения формата файлов
Escape-выражения формата файлов состоит из обычного языка c - escape-последовательность «\ \», «\», «\ b», «\ f», «\ n» и «\ r», «\ t», «\ v». Эти содержат обычные значения, т е обратную косую черту, предупреждение возврат каналы формы, перевода строки (возврат каретки, горизонтальную tab и вертикальную вкладку соответственно.IN ECMAScriptне разрешено «\» и «\ b».(" \ \» поддерживается, но escape-последовательности идентификатора, не escape-выражения формата файлов).
Шестнадцатеричную escape-последовательность
Шестнадцатеричную escape-последовательность обратная косая черта за буквой «x 2», за которым следуют шестнадцатеричные цифры (0-9a-fA-F).Соответствует знаку в последовательности целевых объектов, которая имеет значение, определяемое 2 цифр.Например, «\ x41» соответствует последовательности «a» целевого объекта, когда используется кодирование знаков ASCII.
Escape-последовательности id
Escape-последовательности идентификатора обратная косая черта за отдельный символ.Оно соответствует этому знаку.Обязательный, если символ имеет особое значение. с помощью escape-последовательности идентификатора, специальную смысл удалена.Примеры.
«a*» соответствует последовательности «aaa» целевого объекта, но не соответствует последовательности «a*» целевого объекта.
«a \ *» не соответствует последовательности «aaa» целевого объекта, но соответствует последовательности «a*» целевого объекта.
Набор символов, допустимых в зависит от escape-последовательности идентификатора грамматика регулярного выражения, как показано в следующей таблице.
Грамматика |
Допустимые символы escape-последовательности id |
---|---|
BRE, grep |
{ '(', ')', '{', '}', '.', '[', '\', '*', '^', '$' } |
ERE, egre |
{ '(', ')', '{', '.', '[', '\', '*', '^', '$', '+', '?', '|' } |
awk |
ERE добавочный {«», «/»} |
ECMAScript |
Все символы, кроме тех, которые могут быть частью идентификатора.Обычно это включает в себя буквы, цифры, «$», «_», и escape-последовательность Юникода.Дополнительные сведения см. в спецификации языка ECMAScript. |
Отдельный знак
Отдельный символ в выражение в квадратных скобках добавляет на то, что символ в символьный - установка, определяется выражение в квадратных скобках.В любом месте выражения в квадратных скобках за исключением в начале «^».
Примеры
«[abc]» соответствует последовательности «a», «b» и «c», но не последовательности «d» целевого объекта.
«[]» ^abc соответствует последовательности «d» целевого объекта, но не последовательностям «a» целевого объекта, «b» и «c».
«[]» a^bc соответствует последовательности «a», «b», «c» и «^», но не последовательности «d» целевого объекта для целевого объекта.
Во всех грамматиках регулярных выражений исключение ECMAScriptесли первый символ «]», выполните отверстием «[» или первый знак, следующий за начальным «^» он представляет.
Примеры
«[]» является недопустимым, поскольку в ней нет «]» для завершения выражение в квадратных скобках.
«[] abc]» соответствует последовательности «a», «b», «c» и «]», но не последовательности «d» целевого объекта для целевого объекта.
«[^] abc]» соответствует последовательности «d» целевого объекта, но не последовательностям «a» целевого объекта, «b», «c» или «]».
IN ECMAScript«использования \]» для представления символов «]» в выражение в квадратных скобках.
Примеры
«[]» соответствует последовательности «a» целевого объекта, поскольку выражение в квадратных скобках пустым.
«[\] abc]» соответствует последовательности «a», «b», «c» целевого объекта и «]», но не последовательность «d» целевого объекта.
Недостаток assert
Недостаток подтверждает совпадение с какой-либо областью, но его содержимое.Он не использует никаких знаков в последовательности целевого объекта.например, «(?! aa) ()» a* соответствует последовательности «a» целевого объекта и связывает группу записи 1 с самой длинной общей подпоследовательности «a».он не соответствует последовательности «aa» целевого объекта или последовательности «aaa» целевого объекта.
Отрицательная граница машинного слова assert
Отрицательная граница машинного слова подтверждает совпадение, если текущая позиция в строке целевых объектов не сразу же после a граница машинного слова.
группа Non-захвата
Метки групп non-захвата его содержимое как единый модуль, в грамматике регулярных выражений, но не означают текст целевого объекта.например, «(a) (?: b) * (c) соответствует тексту целевого объекта «abbc» и связывает группу записи 1 с самой длинной общей подпоследовательности «a» и группа записи 2 с самой длинной общей подпоследовательности «c».
Non-жадное повторение
Non-жадное повторение использует наименьшее самой длинной общей подпоследовательности последовательности целевых объектов, которая сопоставлена шаблону.Жадное повторение использует самое длинное.например, «(a+) (a*b)» соответствует последовательности «aaab» целевого объекта.При non-жадное повторение используется, он связывает группу записи 1 с самой длинной общей подпоследовательности «a» в начале последовательности целевых объектов и группа записи с самой длинной общей подпоследовательности aab» 2 «в конце последовательности целевого объекта.Если совпадение жадная используется, она связывает группу записи 1 с самой длинной общей подпоследовательности «aaa» и группа записи 2 с самой длинной общей подпоследовательности «b».
восьмеричная escape-последовательность
Восьмеричная escape-последовательности обратная косая черта удовлетворять одному, 2 или 3 восьмиштырьковыми числами (0-7).Соответствует знаку в последовательности целевых объектов, которая имеет значение, определяемое этими числами.если все числа «0", то последовательность недопустима.Например, «\ 101 " соответствует последовательности «a» целевого объекта, когда используется кодирование знаков ASCII.
обычный символ
Обычный символ любой допустимый символ, который не имеет специальное значение в текущей грамматике.
IN ECMAScriptследующие символы имеют особые значения.
- ^ $ \ .* + ?( ) [ ] { } |
IN BRE и grepследующие символы имеют особые значения.
- .[ \
Также in BRE и grepследующие символы имеют особые значения, если они используются в заданном контексте.
«*» имеет специальное значение во всех случаях за исключением того, что если первый символ в регулярном выражении или первый знак, следующий за начальным «^» в регулярном выражении или если первый символ группы записей или первый знак, следующий за начальным «^» в группе записи.
«^» имеет специальное значение, если первый символ регулярного выражения.
«$» имеет специальное значение, если последний символ регулярного выражения.
IN ERE" egrepи awkследующие символы имеют особые значения.
- .[ \ ( * + ?{ |
Также in ERE" egrepи awkследующие символы имеют особые значения, если они используются в заданном контексте.
")» имеет специальное значение, когда он соответствует предшествовать «(".
«^» имеет специальное значение, если первый символ регулярного выражения.
«$» имеет специальное значение, если последний символ регулярного выражения.
Обычный символ соответствует одному символу в последовательности целевого объекта.По умолчанию, это означает, что соответствие выполнен успешно, если из 2 символов, представленные одним и тем же значением.В обращение-нечувствительной совпадению, 2 символов ch0 и ch1 если совпадение traits.translate_nocase(ch0) == traits.translate_nocase(ch1).В языковой стандарт-чувствительной совпадению, 2 символов ch0 и ch1 если совпадение traits.translate(ch0) == traits.translate(ch1).
Положительный assert
Положительный утверждения соответствует его содержимое, но не использует символы в последовательности целевого объекта.
Примеры
«(? =aa) ()» a* соответствует последовательности «aaaa» целевого объекта и связывает группу записи 1 с самой длинной общей подпоследовательности «aaaa».
aa «() " ()» a* соответствует последовательности «aaaa» целевого объекта и связывает группу записи 1 с самой длинной общей подпоследовательности «aa» в начале последовательности целевых объектов и группы записей 2 с самой длинной общей подпоследовательности «aa» в конце последовательности целевого объекта.
«(? =aa) (a)|(a),» соответствует последовательности «a» целевого объекта и связывает группу записи 1 с пустой последовательностью (поскольку положительный assert ошибкой) и группа записи 2 с самой длинной общей подпоследовательности «a».Также оно соответствует последовательности «aa» целевого объекта и связывает группу записи 1 с самой длинной общей подпоследовательности «aa» и группа записи 2 с пустой последовательностью.
escape-последовательность Юникода
Escape-последовательность Юникода обратная косая черта за буквой «u», за которым следуют шестнадцатеричные цифры (0-9a-fA-F 4).Она соответствует знаку в последовательности целевых объектов, которая имеет значение, определяемое 4 цифр.Например, «\ u0041» соответствует последовательности «a» целевого объекта, когда используется кодирование знаков ASCII.
подстановочный знак
Подстановочный знак соответствует любому символу в выражении целевого объекта, за исключением новой строки.
граница машинного слова
Граница машинного слова происходит в следующих случаях:
Текущий символ в начале последовательности целевых объектов и один из знаков машинного слова A-Za-z0-9_.
Текущее положение символа за концом последовательности целевых объектов и последний знак в последовательности целевых объектов один из знаков машинного слова.
Текущий символ один из знаков машинного слова и предыдущий символ не является.
Текущий символ не является одним из символов машинного слова и предыдущий знак.
Граница машинного слова assert
Граница машинного слова assert совпадения, если текущая позиция в строке сразу же после a целевого объекта граница машинного слова.
Соответствовать и поиск
Для регулярного выражения для сопоставления последовательности целевого объекта все регулярное выражение должно соответствовать всей последовательности целевого объекта.Например, регулярное выражение «bcd» соответствует последовательности «bcd» целевого объекта, но не соответствует последовательности «abcd» целевого объекта, ни последовательности «bcde» целевого объекта.
Для поиска регулярного выражения, который будет успешным, должно быть самой длинной общей подпоследовательности где-то в последовательности целевых объектов, которая соответствует регулярному выражению.Поиск обычно ищет самое левое соответствующую самой длинной общей подпоследовательности.
Примеры
Поиск регулярного выражения «bcd» в последовательности «bcd» целевого объекта завершится успешно и соответствует вся последовательность.Поиск в одной и той же последовательности «abcd» целевого объекта также завершится успешно и соответствует последние 3 символов.Поиск в одной и той же последовательности «bcde» целевого объекта также завершится успешно и соответствует 3 первых символа.
Поиск регулярного выражения «bcd» в последовательности «bcdbcd» целевого объекта завершится успешно и соответствует 3 первых символа.
Если несколько самой длинной общей подпоследовательности, соответствующий на некотором расположении в последовательности целевых объектов, 2 способа выбрав соответствующее шаблон.Первое совпадение выбирает самой длинной общей подпоследовательности, которое было найдено при совпадении сначала регулярное выражение.Наиболее долго соответствие выбирает наиболее длительное самой длинной общей подпоследовательности из одного, которые соответствуют в этом расположении.Если несколько самой длинной общей подпоследовательности, имеющее maximal длину, наиболее долго одно совпадение, которое было найдено в первую очередь.Например, если будет использоваться первое совпадение, при поиске регулярного выражения, «b|bc» в последовательности «abcd» целевого объекта совпадает с самой длинной общей подпоследовательности «b», так как левая термин изменения соответствует этому самой длинной общей подпоследовательности; поэтому первое совпадение не пытается терминов части constructs.При наиболее долго соответствие используется эти же ищет совпадения «bc», поскольку «bc» более длинные, чем «b».
Частичное совпадение успешно, если совпадение достигает конца последовательности целевых объектов, не завершилась ошибкой даже в том случае, если она не достигала конец регулярного выражения.Поэтому после того как частичное совпадение успешно, добавлять знаки в последовательности целевых объектов может привести к более позднюю частичное совпадение завершиться ошибкой.Однако после частичное совпадение завершается неудачей, добавление символов в последовательности целевых объектов не удается вызвать позднее частичное совпадение успешным.Например, с частично соответствием, «ab» соответствует последовательности «a», но не «ac» целевого объекта.
флаги формата
Правила форматирования ECMAScript |
правила форматирования SED |
текст замены |
---|---|---|
«$&» |
"&" |
Последовательность символов, которая соответствует всему регулярному выражению ([match[0].first, match[0].second)) |
«$$» |
«$» |
|
|
«\ &» |
"&" |
«`» $ (знак доллара за предложением задним кавычек) |
|
Последовательность символов, которая предшествует самой длинной общей подпоследовательности, которое соответствует регулярному выражению ([match.prefix().first, match.prefix().second)) |
«символ доллара ($ '», за которым следует передним предложением кавычки) |
|
Последовательность символов, которая следует за самой длинной общей подпоследовательности, которое соответствует регулярному выражению ([match.suffix().first, match.suffix().second)) |
«$n» |
«\ n» |
Последовательность символов, которая соответствует группе записи по позиции n, где n число от 0 до 9 ([match[n].first, match[n].second) |
|
«\ \ n» |
«\ n» |
«$nn» |
|
Последовательность символов, которая соответствует группе записи по позиции nn, где nn число от 10 до 99 ([match[nn].first, match[nn].second) |