Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASCII и latin.docx
Скачиваний:
3
Добавлен:
08.08.2019
Размер:
190.09 Кб
Скачать

11.1.2. Классы символов

Отдельные символы литералов могут объединяться в классы символов путем по

мещения их в квадратные скобки. Класс символов соответствует любому симво

лу, содержащемуся в этом классе. Следовательно, регулярное выражение /[abc]/

соответствует одному из символов a, b или c. Могут также определяться классы

Символ Соответствие

Алфавитноцифровые

символы

Соответствуют самим себе

\0 Символ NUL (\u0000)

\t Табуляция (\u0009)

\n Перевод строки (\u000A)

\v Вертикальная табуляция (\u000B)

\f Перевод страницы (\u000C)

\r Возврат каретки (\u000D)

\xnn Символ из набора Latin, задаваемый шестнадцатеричным

числом nn; например, \x0A – это то же самое, что \n

\uxxxx Unicodeсимвол, заданный шестнадцатеричным числом

xxxx; например, \u0009 – это то же самое, что \t

\cX Управляющий символ ^X; например, \cJ эквивалентно сим

волу перевода строки \n

1 Из числа знаков препинания. – Примеч. науч. ред.11.1. Определение регулярных выражений 217

символов с отрицанием, соответствующие любому символу, кроме тех, которые

указаны в скобках. Класс символов с отрицанием задается символом ^ в качестве

первого символа, следующего за левой скобкой. Регулярное выражение /[^abc]/

соответствует любому символу, отличному от a, b или c. В классах символов диа

пазон символов может задаваться при помощи дефиса. Поиск всех символов ла

тинского алфавита в нижнем регистре осуществляется посредством выражения

/[az]/, а любую букву или цифру из набора символов Latin можно найти при по

мощи выражения /[azAZ09]/.

Некоторые классы символов используются особенно часто, поэтому синтаксис ре

гулярных выражений в JavaScript включает специальные символы и управляю

щие (escape) последовательности для их обозначения. Так, \s соответствует симво

лам пробела, табуляции и любым пробельным (whitespaces) символамразделите

лям из набора Unicode, а \S – любым символам, не являющимся символамиразде

лителями из набора Unicode. В табл. 11.2 приводится перечень этих спецсимволов

и синтаксиса классов символов. (Обратите внимание: некоторые из управляю

щих последовательностей классов символов соответствуют только ASCIIсимво

лам и не расширены для работы с Unicodeсимволами. Можно явно определить

собственные классы Unicodeсимволов, например, выражение /[\u0400\04FF]/

соответствует любому символу кириллицы.)

Таблица 11.2. Классы символов регулярных выражений

Обратите внимание: управляющие последовательности специальных классов

символов могут находиться в квадратных скобках. \s соответствует любому сим

волуразделителю, а \d соответствует любой цифре, следовательно, /[\s\d]/ соот

ветствует любому символуразделителю или цифре. Обратите внимание на осо

бый случай. Как мы увидим позже, последовательность \b имеет особый смысл.

Однако когда она используется в классе символов, то обозначает символ «за

бой». Поэтому, для того чтобы обозначить символ «забой» в регулярном выра

жении буквально, используйте класс символов с одним элементом: /[\b]/.

Символ Соответствие

[...] Любой из символов, указанных в скобках

[^...] Любой из символов, не указанных в скобках

. Любой символ, кроме перевода строки или другого разделителя Unicode

строки

\w Любой текстовый ASCIIсимвол. Эквивалентно [azAZ09_]

\W Любой символ, не являющийся текстовым ASCIIсимволом. Эквивалент

но [^azAZ09_]

\s Любой символразделитель из набора Unicode

\S Любой символ, не являющийся символомразделителем из набора Uni

code. Обратите внимание: \w и \S – это не одно и то же

\d Любые ASCIIцифры. Эквивалентно [09]

\D Любой символ, отличный от ASCIIцифр. Эквивалентно [^09]

[\b] Литерал символа «забой» (особый случай)218 Глава 11. Шаблоны и регулярные выражения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]