Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы СПО / РегЭкспы методичка.docx
Скачиваний:
54
Добавлен:
12.04.2015
Размер:
254.09 Кб
Скачать

3.3. Синтаксис регулярных выражений

Далее под «регулярным выражением» будем понимать шаблон поиска подстрок, записанный по определенным синтаксическим правилам.

3.3.1. Метасимволы

В состав регулярного выражения входят символы и метасимволы. Простой символ представляет сам себя (например, буква а). Метасимволы (wildcard characters) – это специальные символы, которые используются для обозначения других символов или их последовательностей. К метасимволам относятся:

[ ] \ ^ $ . | ? * + ( ) { }

Если в регулярном выражении метасимвол должен восприниматься как обычный символ (то есть без интерпретации), то перед ним ставится обратная косая черта \ (этот приём называется экранированием). Например, чтобы представить символ «точка», надо писать \. (обратная косая черта, а за ней - точка). Сам метасимвол \ тоже может быть экранирован, то есть представлен как \\ (две обратных косых черты).

Таблица 1

Значения метасимволов

Метасимвол

Интерпретация

\

Экранирующий символ

.

любой символ

^

1) начало строки

2) исключение (при использовании ^ внутри квадратных скобок после него указываются символы, которые не должны встречаться)

$

конец строки

[ ]

скобки для задания символьного класса

( )

скобки для задания группировки

{ }

скобки для задания квантификаторов

|

разделитель альтернатив

*

повторение предыдущего символа 0 и более раз

+

повторение предыдущего символа 1 и более раз

?

повторение предыдущего символа 0 или 1 раз

Примеры:

Сами регулярные выражения (шаблоны) здесь и далее будем записывать в одинарных апострофах, а строки – в двойных кавычках.

  • Шаблону ‘o.d’ будут соответствовать “oad”, “obd”, “o9d”. Здесь точка обозначает «любой символ».

  • При использовании точки в качестве обычного символа, ее нужно экранировать. Шаблон поиска ‘fil.\.txt’ найдет имена “file.txt”, “fil2.txt”. Первая точка в шаблоне воспринимается как метасимвол «любой символ», а экранированная точка \. как обычный символ.

  • Метасимвол ^ означает начало строки. Поиск по шаблону ‘^the’ в строке “the flower on the table” найдет только вхождение the, приходящееся на начало строки (подчеркнуто).

  • Шаблон ‘zo*’ содержит метасимвол *, означающий повторение предыдущего символа (то есть буквы «о») 0 и более раз. Будут найдены строки “z”, “zo”, “zoo”, “zooo”.

  • Если нужно повторить несколько символов, их группируют в круглых скобках: шаблон ‘a(bc)*d’ найдет строки “ad”, “abcd”, “abcbcd”.

  • Метасимвол + заставляет повторять строку 1 и более раз, поэтому шаблон ‘a(bc)+d’ найдет строки “abcd”, “abcbcd”.

  • Метасимвол ? означает повторение предыдущего символа 0 или 1 раз. Поиск по шаблону ‘ca(bine)?t’ даст строки “cat” и “cabinet”.

  • Метасимвол | используется для разделения альтернатив (вариантов выбора). При этом совпадение зачитывается, когда есть совпадение хотя бы с одним вариантом. Желательно альтернативы заключать внутрь группировки (в круглые скобки). Шаблон ‘boo(k|st|t)’ найдет строки “book”,“boost”,“boot”. ■

Кроме того, в регулярных выражениях допускается применять последовательности метасимволов (таблица 2).

Таблица 2

Соседние файлы в папке Лабы СПО