Списки сопоставляемых символов
Список сопоставляемых символов можно создать путем заключения одного или нескольких отдельных символов в квадратные скобки [ ]. Когда знаки заключаются в квадратные скобки, полученный список называется выражением в квадратных скобках.
Символы, заключенные в выражение в квадратных скобках, сопоставляются только с одним символом в той же позиции в регулярном выражении, где отображается выражение в квадратных скобках. Следующее регулярное выражение JScript соответствует строкам "Chapter 1", "Chapter 2", "Chapter 3", "Chapter 4" и "Chapter 5".
/Chapter [12345]/
Выражение в квадратных скобках используется только для задания набора знаков, соответствующего позиции отдельного знака, расположенного сразу после слова Chapter и пробела. В данном случае это позиция девятого знака.
Символы выражений в квадратных скобках
Как и в других случаях, внутри скобок обычные символы представляют сами себя. Таким образом, они представляют собой эти же символы в тексте, по которому выполняется поиск. Внутри выражения в квадратных скобках большинство специальных знаков теряют свое значение. Ниже приведены некоторые исключения.
Знак закрывающей квадратной скобки "]" завершает список, если он не является первым элементом. Чтобы включить знак закрывающей квадратной скобки "]" в список, введите его сразу же после открывающего знака "[".
Символ обратной косой черты"\" остается escape-символом. Чтобы представить обратную косую черту, введите две косые черты подряд "\\".
Использование дефисов для диапазонов символов
Чтобы задать совпадающие знаки с помощью диапазона, а не самих знаков, разделите начальный и конечный символ в диапазоне с помощью дефиса "-". Следующее регулярное выражение соответствует строке /Chapter [12345]/.
/Chapter [1-5]/
В данный диапазон включены начальное и конечное значения. Обратите внимание на то, что начальное значение должно предшествовать конечному значению в порядке сортировки Юникода. Значение отдельных символов определяет относительный порядок внутри диапазона.
Выражение в квадратных скобках обычно применяется для задания соответствий для любых букв в верхнем или нижнем регистре или любых цифр. Такое соответствие представлено в следующем выражении.
/[A-Za-z0-9]/
Включение дефиса в выражение
Чтобы включить знак дефиса в выражение в квадратных скобках, выполните одно из следующих действий:
Предварите его escape-символом обратной косой черты, как показано ниже.
[\-]
Введите знак дефиса в начале или в конце списка в квадратных скобках. Следующие выражения соответствуют всем буквам в нижнем регистре и дефису.
[-a-z] [a-z-]
Создайте диапазон, в котором значение начального знака меньше значения знака дефиса, а значение конечного знака равно или больше значения знака дефиса. Данному требованию удовлетворяют оба следующих регулярных выражения.
[!--] [!-~]
Использование знака крышки для отрицания
Чтобы найти все символы, не входящие в список или диапазон, поместите в начале списка знак крышки (^). Если знак крышки находится в любом другом месте списка, он соответствует самому себе, то есть не имеет отдельного значения. Следующее регулярное выражение соответствует заголовкам глав, не содержащим символы от 1 до 5.
/Chapter [^12345]/
В предыдущем примере выражение соответствует любому символу в девятой позиции кроме 1, 2, 3, 4 и 5. Таким образом, выражению соответствует строка "Chapter 7" и "Chapter 9".
Те же выражения можно записать с помощью дефиса "-". Такое соответствие представлено в следующем выражении.
/Chapter [^1-5]/
Сопоставление любого символа
Точка (.) соответствует любому одиночному печатаемому или непечатаемому символу в строке, за исключением символа новой строки (\n). Регулярное выражение /a.c/ в JScript соответствует строкам "aac", "abc", "acc", "adc", "a1c", "a2c", "a-c" и "a#c".
Для поиска точки (.) в строке в регулярном выражении перед точкой следует поместить обратную косую черту (\). Регулярное выражение /filename\.ext/ соответствует строке "filename.ext".