Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Количественные модификаторы (квантификаторы)




Обычно регулярные выражения гораздо сложнее, чем приведенные выше, и записывать их по одному символу неудобно. Например, если требуется отобрать строки, состоящие из четырех символов, каждый из которых может быть буквой от a до f или цифрой, то регулярное выражение может выглядеть примерно так (рис.25):

"af12","1FE0","1fz1","B009","C1212" -match "^[a-f\d][a-f\d][a-f\d][a-f\d]$"

 

Рис. 25. Пример сложного регулярного выражения

 

Для сокращения подобных конструкций в регулярных выражениях используется специальная конструкция – количественные модификаторы (квантификаторы). Модификаторы приписываются к любой группе справа, и определяют количество вхождений этой группы. Например, количественный модификатор {4} означает 4 вхождения. Приведенное выше выражение можно записать с помощью модификатора следующим образом (рис. 26):

"af12","1FE0","1fz1","B009","C1212" -match "^[a-f\d]{4}$"

 

Рис. 26. Использование квантификатора

 

Данное регулярное выражение полностью эквивалентно предыдущему. В нем конструкция [a-f\d] повторяется 4 раза.

Этот количественный модификатор не обязательно жестко оговаривает количество повторений. Например, можно задать количество вхождений как "от минимального до максимального". Делается это указанием внутри фигурных скобок двух чисел через запятую – минимума и максимума (рис.27):

 

Рис. 27. Другой вариант использования квантификатора

 

Если максимальное количество вхождений безразлично, например, нужно указать "3 вхождения или больше", то максимум можно опустить (оставив запятую на месте), например "строка состоящая из 3х или более цифр":

"1","12","123","1234","12345" -match "^\d{3,}$"

123

1234

12345

Минимальное значение опустить нельзя, но можно просто указать единицу:

"1","12","123","1234","12345" -match "^\d{1,3}$"

1

12

123

Как и в случае с символьными группами, для часто используемых значений количественных модификаторов, есть короткие псевдонимы:

· + (плюс), эквивалентен {1,} то есть, "одно или больше вхождений";

· * (звездочка), то же самое что и {0,} или "любое количество вхождений, в том числе и 0";

· ? (вопросительный знак), равен {0,1} – "либо одно вхождение, либо полное отсутствие вхождений".

В регулярных выражениях, количественные модификаторы сами по себе использоваться не могут. Для них обязателен символ или символьная группа, которые и будут определять их смысл.










Последнее изменение этой страницы: 2018-06-01; просмотров: 310.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...