Классификация регулярных выражений

Регулярные выражения — это специальные шаблоны, используемые для ука- зания строк, например, при поиске. Регулярные выражения строятся из обычных алфавитно-цифровых символов и метасимволов. Метасимволы по- зволяют адресоваться одновременно к одному или более обычным алфавит- но-цифровым символам.

По историческим причинам регулярные выражения подразделяются на:

r обычные регулярные выражения (basic regexp);

r регулярные выражения с расширенным синтаксисом (extended regexp).

Не все текстовые утилиты, работающие с регулярными выражениями, под- держивают расширенный синтаксис регулярных выражений.

Метасимволы, составляющие регулярные выражения, представлены двумя классами: шаблонами и квантификаторами.

Шаблоны — специальные символы, заменяющие один или более обычных символов.

Квантификаторы — указатели количества вхождений символа или набора сим- волов, находящихся в регулярном выражении непосредственно перед ними.


 

То есть шаблоны указывают на то, что должно находиться в данном месте искомой строки, а квантификаторы — сколько раз оно должно там встре- чаться.

В табл. 9.1 приведены наиболее общеупотребительные регулярные выражения.

 

Таблица 9.1. Регулярные выражения

Метасим- вол Класс Расширен- ный Описание
^ Шаблон   Начало строки
$ Шаблон   Конец строки
\< Шаблон * Начало слова
\> Шаблон * Конец слова
. Шаблон   Любой символ, включая пробел
[] Шаблон   Набор символов
() Шаблон * Группировка символов
| Шаблон * Инфиксный оператор (или)
* Квантификатор   Вхождение любое количество раз
+ Квантификатор * Вхождение не менее одного раза
? Квантификатор * Вхождение не более одного раза
{n} Квантификатор * Вхождение n раз
{n,} Квантификатор * Вхождение не менее n раз
{n,m} Квантификатор * Вхождение от n до m раз

Помимо перечисленных регулярных выражений имеется несколько расши- ренных их наборов. Например, в языке Perl используется больше регулярных выражений.

Множества символов, задаваемые в квадратных скобках, имеют следующий смысл: в данном месте должен находиться один любой символ из входящих во множество. Например, множество [0-3] включает в себя все числа от нуля до трех, а регулярному выражению ^[0-3]$ удовлетворяют все строки, в ко- торых находится единственный символ — число от нуля до трех (^ — начало строки, $ — конец строки).

Помимо множеств, заданных с помощью перечисления символов в квадрат- ных скобках, существуют заранее определенные классы символов, приведен- ные в табл. 9.2.


 

Таблица 9.2. Заранее определенные множества символов

Класс Значение
[:alnum:] Множество алфавитно-цифровых символов
[:alpha:] Алфавитные символы
[:blank:] Пустые символы — пробел и табуляция
[:cntrl:] Символы с восьмеричными кодами от 000 до 037 и 177
[:digit:] Десятичные цифры
[:graph:] Изображаемые символы: алфавитно-цифровые и пунктуация
[:lower:] Буквы в нижнем регистре
[:print:] Печатаемые символы: алфавитно-цифровые, пробел и пунктуация
[:space:] Табуляция, вертикальная табуляция, пробел, перевод строки
[:upper:] Буквы в верхнем регистре
[:xdigit:] Шестнадцатеричные символы







Дата добавления: 2015-06-12; просмотров: 524;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.