Списки сопоставляемых символов

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

Символы, заключенные в выражение в квадратных скобках, сопоставляются только с одним символом в той же позиции в регулярном выражении, где отображается выражение в квадратных скобках. Следующее регулярное выражение 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".

См. также

Основные понятия

Создание регулярного выражения