Клиентский JavaScript 1.3 Руководство



              

Таблица 4.1 Специальные символы в регулярных выражениях


Таблица 4.1 Специальные символы в регулярных выражениях

Символ

Значение

\

Один из следующих вариантов:

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

    Например, /b/ совпадает с символом 'b'. При помещении символа backslash перед b, то есть /\b/, символ становится специальным, обозначая границу слова.

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

    Например, * это специальный символ, который означает 0 или более совпадений с вхождением предыдущего символа; например, /a*/ означает 0 или более символов а. Для подстановки * литерально, поставьте передним backslash; например, /a\*/ совпадает с 'a*'.

^

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

Например, /^A/ не совпадает с 'A' в строке "an A," но совпадает с первой А в строке "An A".

$

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

Например, /t$/ не совпадает с 't' в "eater", но совпадает в "eat".

*

Предшествующий символ совпадает 0 или более раз.

Например, /bo*/ совпадает с 'boooo' в "A ghost booooed" и с 'b' в "A bird warbled", но не совпадает в "A goat grunted".

+

Предшествующий символ совпадает 1 или более раз. Эквивалентно {1,}.

Например, /a+/ совпадает с 'a' в "candy" and all the a's in "caaaaaaandy."

?

Предшествующий символ совпадает 0 или 1 раз.

Например, /e?le?/ совпадает с 'el' в "angel" и с 'le' в "angle."

.

(Десятичная точка) совпадает с любым одиночным символом, кроме символа новой строки.

Например, /.n/ совпадает с 'an' и с 'on' в "nay, an apple is on the tree", но не с 'nay'.

(x)

Совпадает с 'x' и запоминает совпадение.

Например, /(foo)/ совпадает (и запоминает) с 'foo' в "foo bar." Совпавшая подстрока может быть вызвана из результирующего массива элементов [1], ..., [n] или из свойств $1, ..., $9 предопределённого объекта RegExp.

x|y

Совпадает с 'x' или с 'y'.

Например, /green|red/ совпадает с 'green' в "green apple" и с 'red' в "red apple."

{n}

Где n это положительное целое. Предшествующий символ совпадает точно n раз.

Например, /a{2}/ не совпадает с 'a' в "candy", но совпадает со всеми 'a' в "caandy" и с первыми двумя 'a' в "caaandy."

{n,}

Где n это положительное целое. Предшествующий символ совпадает как минимум n раз.

Например, /a{2,} не совпадает с 'a' в "candy", но совпадает со всеми 'a' в "caandy" и в "caaaaaaandy."

{n,m}

Где n и m это положительные целые. Предшествующий символ совпадает как минимум n и максимум m раз.

Например, /a{1,3}/ не совпадает ни с чем в "cndy", совпадает с 'a' in "candy," первыми двумя 'a' в "caandy" и первыми тремя 'a' в "caaaaaaandy" Обратите внимание, что в "caaaaaaandy" совпадает только "aaa", хотя строка-оригинал содержит больше символов 'a'.

[xyz]

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

Например, [abcd] эквивалентно [a-d]. Совпадает с 'b' в "brisket" и с 'c' в "ache".

[^xyz]

Отрицание набора символов. То есть совпадение со всем, кроме того, что находится в скобках. Вы можете специфицировать диапазон символов, используя дефис.

Например, [^abc] это то же самое, что [^a-c]. Первоначально совпадает с 'r' в "brisket" и с 'h' в "chop".

[\b]

Совпадает с backspace. (Не путайте с \b.)

\b

Совпадает с границей слова, такой как пробел/space или символ новой строки. (Не путайте с [\b].)

Например, /\bn\w/ совпадает с 'no' in "noonday"; /\wy\b/ совпадает с 'ly' in "possibly yesterday".

\B

Совпадает с не-границей слова.

Например, /\w\Bn/ совпадает с 'on' в "noonday"; /y\B\w/ совпадает с 'ye' в "possibly yesterday".

\cX

Где X это управляющий символ. Совпадает с управляющим символом в строке.

Например, /\cM/ совпадает с комбинацией control-M.

\d

Совпадает с цифрой. Эквивалентно [0-9].

Например, /\d/ или /[0-9]/ совпадает с '2' в строке "B2 is the suite number".

\D

Совпадает с не-цифрой. Эквивалентно [^0-9].

Например, /\D/ или /[^0-9]/ совпадает с 'B' в "B2 is the suite number".

\f

Совпадает с form-feed.

\n

Совпадает с linefeed.

\r

Совпадает с carriage return.

\s

Совпадает с одиночным пробельным символом, включая space, tab, form feed, line feed.

Эквивалентно [ \f\n\r\t\v].

Например, /\s\w*/ совпадает с ' bar' в "foo bar".

\S

Совпадает с одиночным символом, отличным от пробела. Эквивалентно [^ \f\n\r\t\v].

Например, /\S\w*/ совпадает с 'foo' в "foo bar."

\t

Совпадает с tab.

\v

Совпадает с vertical tab.

\w

Совпадает с любым алфавитно-цифровым символом, включая символ подчёркивания. Эквивалентно [A-Za-z0-9_].

Например, /\w/ совпадает с  'a' в "apple", с '5' в "$5.28" и с '3' в "3D."

\W

Совпадает с любым не-алфавитно-цифровым символом. Эквивалентно [^A-Za-z0-9_].

Например, /\W/ или /[^$A-Za-z0-9_]/ совпадает с '%' в "50%."

\n

Где n это положительное целое. Обратная ссылка на последнее совпадение подстроки с n в скобках из регулярного выражения (с учётом левых скобок).

Например, /apple(,)\sorange\1/ совпадает с 'apple, orange,' в "apple, orange, cherry, peach."

Более сложный пример идёт далее после таблицы.

Примечание: Если количество левых скобок меньше числа, специфицированного в \n, то \n считается восьмеричной escape-последовательностью, как описано в следующем ряду.

\ooctal
\xhex

Где \ooctal  это 8-ричное escape-значение или где \xhex  это 16-ричное escape-значение. Даёт возможность внедрять ASCII-коды в регулярные выражения.




Содержание  Назад  Вперед