Spec-Zone .ru
спецификации, руководства, описания, API
След: Существенные Классы
Урок: Регулярные выражения
Строковые литералы
Домашняя страница > Существенные Классы > Регулярные выражения

Строковые литералы

Наиболее каноническая форма сопоставления с образцом, поддерживаемого этим API, является соответствием строкового литерала. Например, если регулярное выражение foo и строка ввода foo, соответствие успешно выполнится, потому что строки идентичны. Испытайте это с тестовым ремнем безопасности:

 
Enter your regex: foo
Enter input string to search: foo
I found the text foo starting at index 0 and ending at index 3.

Это соответствие имело успех. Отметьте, что, в то время как строка ввода является 3 символами долго, запуск индексирует, 0, и конец индексируют, 3. Условно, диапазоны являются содержащими из начала, индексируют, и монопольный из конца индексируют, как показано в следующем числе:

Строковый литерал foo, с пронумерованными ячейками и индексирует значения.

Строковый литерал foo, с пронумерованными ячейками и индексирует значения.

Каждый символ в строке находится в ее собственной ячейке с индексировать позициями, указывающими между каждой ячейкой. Строка "foo" запускается в, индексируют 0, и концы в индексируют 3, даже при том, что символы непосредственно только занимают ячейки 0, 1, и 2.

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

 
Enter your regex: foo
Enter input string to search: foofoofoo
I found the text foo starting at index 0 and ending at index 3.
I found the text foo starting at index 3 and ending at index 6.
I found the text foo starting at index 6 and ending at index 9.

Метасимволы

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

Enter your regex: cat.
Enter input string to search: cats
I found the text cats starting at index 0 and ending at index 4.

Соответствие все еще успешно выполняется, даже при том, что точка"."не присутствует в строке ввода. Это успешно выполняется, потому что точка является метасимволом — символ с особым значением, интерпретируемым matcher. Метасимвол "." означает "любой символ", который является, почему соответствие преуспевает в этом примере.

Метасимволы, поддерживаемые этим API: <([{\^-=$!|]})?*+.>


Отметьте: В определенных ситуациях специальные упомянутые выше символы не будут обработаны как метасимволы. Вы встретитесь с этим, поскольку Вы узнаете больше, как создаются регулярные выражения. Можно, однако, использовать этот список, чтобы проверить, будут ли определенный символ когда-либо считать метасимволом. Например, символы @ и # никогда не переносите особое значение.

Есть два способа вынудить метасимвол быть обработанным как обычный символ:

При использовании этого метода, \Q и \E может быть помещен в любое расположение в пределах выражения, при условии, что \Q на первом месте.


Проблемы с примерами? Попытайтесь Компилировать и Выполнить Примеры: FAQ.
Жалобы? Поздравление? Предложения? Дайте нам свою обратную связь.

Предыдущая страница: Тестовый Ремень безопасности
Следующая страница: Классы символов