Символы, метасимволы и метапоследовательности

Flash Player 9 и более поздних версий, Adobe AIR 1.0 и более поздних версий

Самым простым регулярным выражением является такое выражение, последовательность символов которого соответствует последовательности, указанной в следующем примере:

var pattern:RegExp = /hello/;

Однако следующие символы, известные как метасимволы , , имеют в регулярных выражениях особое значение:

^ $ \ . * + ? ( ) [ ] { } |

Например, следующее регулярное выражение соответствует букве А, за которой следует нуль или несколько экземпляров буквы B (метасимвол звездочки обозначает это повторение), за которыми, в свою очередь, идет буква C:

/AB*C/

Чтобы в образец регулярного выражения добавить метасимвол без его особого значения, необходимо использовать символ перехода \ обратной косой черты. Например, следующее регулярное выражение соответствует букве А, за которой следует буква B, за которой идет звездочка, за которой, в свою очередь, идет буква C:

var pattern:RegExp = /AB\*C/;

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

О метасимволах

В следующей таблице собраны метасимволы, которые могут быть использованы в регулярных выражениях.

Метасимвол

Описание

^ (знак вставки)

Соответствует началу строки. Вместе с установленным флагом m ( multiline ) знак вставки также соответствует началу строки (см. раздел Флаги и свойства ). Обратите внимание, что знак вставки при использовании в начале класса символов обозначает отрицание, а не начало строки. Дополнительные сведения см. в разделе « Классы символов ».

$ (знак доллара)

Соответствует концу строки. Вместе с установленным флагом m ( multiline ) знак $ также соответствует положению перед символом ( \n ) новой строки. Дополнительные сведения см. в разделе « Флаги и свойства ».

\ (обратная косая черта)

Обозначает переход от особого значения метасимвола особых символов.

Символ обратной косой черты также применяется, если в литерале регулярного выражения нужно использовать символ прямой косой черты, как показано далее /1\/2/ (чтобы соответствовать символу 1, за которым следует символ прямой косой черты, за которым идет символ 2).

. (точка)

Соответствует любому одиночному символу.

Точка соответствует символу новой строки ( \n ), только если установлен флаг s ( dotall ). Дополнительные сведения см. в разделе « Флаги и свойства ».

* (звезда)

Соответствует предыдущему элементу, повторяющемуся нуль или более раз.

Дополнительные сведения см. в разделе « Квантификаторы ».

+ (плюс)

Соответствует предыдущему элементу, повторяющемуся один или более раз.

Дополнительные сведения см. в разделе « Квантификаторы ».

? (знак вопроса)

Соответствует предыдущему элементу, повторяющемуся нуль или один раз.

Дополнительные сведения см. в разделе « Квантификаторы ».

( и )

Определяет группы внутри регулярного выражения. Группы используются со следующей целью.

  • Для ограничения области оператора перестановок | : /(a|b|c)d/

  • Для определения области квантификатора: /(walla.){1,2}/

  • Во встречных ссылках. Например, в следующем регулярном выражении \1 соответствует всему, что соответствует первой группе образца в круглых скобках:

  • /(\w*) is repeated: \1/

Дополнительные сведения см. в разделе « Группы ».

[ и ]

Определяет класс символов, определяющий возможные совпадения для одиночного символа:

/[aeiou]/ соответствует любому из указанных символов.

Дефис ( - ) используется внутри классов символов для обозначения диапазона символов:

/[A-Z0-9]/ соответствует буквам верхнего регистра от А до Z или цифрам от 0 до 9.

Внутри классов символов для перехода от символов ]

и - используется вставка обратной косой черты:

/[+\-]\d+/ соответствует либо + , либо - перед одной или несколькими цифрами.

Внутри классов символов другие символы, которые обычно являются метасимволами, рассматриваются как обычные символы (не метасимволы), избегая необходимости использовать обратную косую черту:

/[$]/ £ соответствует либо $ , либо £ .

Дополнительные сведения см. в разделе « Классы символов ».

| (вертикальная черта)

Используется для перестановок, чтобы соответствовать либо части справа, либо части слева:

/abc|xyz/ соответствует либо abc , либо xyz .

О метапоследовательностях

Метапоследовательности представляют собой последовательности символов, имеющих в образце регулярного выражения особое значение. В следующей таблице приведено описание этих метапоследовательностей.

Метапоследовательность

Описание

{ n }

{ n ,}

и

{ n , n }

Определяет числовой квантификатор или диапазон квантификатора предыдущего элемента:

/A{27}/ соответствует символу A , повторяемому 27 раз.

/A{3,}/ соответствует символу A , повторяемому 3 раза или более.

/A{3,5}/ соответствует символу A , повторяемому от 3 до 5 раз.

Дополнительные сведения см. в разделе « Квантификаторы ».

\b

Соответствует положению между словесным символом и несловесным символом. Также соответствует началу или концу строки, если первый или последний символ в строке является словесным символом.

\B

Соответствует положению между двумя словесными символами. Также соответствует положению между двумя несловесными символами.

\d

Соответствует десятичной цифре.

\D

Соответствует любому символу, отличному от цифры.

\f

Соответствует символу перевода страницы.

\n

Соответствует символу начала строки.

\r

Соответствует символу возврата.

\s

Соответствует любому символу разделителя (символу пробела, табуляции, новой строки или возврата).

\S

Соответствует любому символу, отличному от символа разделителя.

\t

Соответствует символу табуляции.

\u nnnn

Соответствует символу юникода с кодом символа, заданным шестнадцатеричным числом nnnn . Например, \u263a является символом смайлика.

\v

Соответствует символу вертикальной подачи.

\w

Соответствует словесному символу ( AZ –, az –, 0-9 или _ ). Следует отметить, что \w не соответствует символам, не являющимся символами английского языка, таким как é , ñ или ç .

\W

Соответствует любому символу, отличному от словесного символа.

\\x nn

Соответствует символу с заданным значением ASCII, определенным шестнадцатеричным числом nn .