Читать реферат по информатике, вычислительной технике, телекоммуникациям: "Регулярные выражения в perl" Страница 5
перечисленных через запятую, которые соответственно определяют пределы жадности. Впомним про спецификатор *. Аналогичный ему + превращает шаблон в обжору, которого не удовлетворяет менее одного совпадения. То есть при использовании + условие отбора является истинным только когда имеются 1 и более совпадений. Заметьте, что верхний предел у нас неопределен и может быть опущен внутри конструкции с фигурными скобками. Если внутри фигурных скобок указать всего одно значение без запятых, то квантификатор сожрет только такую строку, в которой совпадений с шаблоном будет именно указанное количество.
Что бы вам не показалось что мы снова забираемся в теоретические дебри, напомню, что все то о чем мы сейчас говорим относится только к проверке условия на совпадение участка строки с шаблоном. Мало того, с квантификаторами это далеко не все тонкости. Существуют еще некоторые аспекты, такие как правила применения квантификаторов около границ контейнеров. Но с этим вам придется разбираться самостоятельно. В общем можно привести такой простой пример
/(.{2,10})/
Это регулярное выражение будет помещать в контейнер от двух до десяти символов строки. При чем, учитывая жадность, по возможности квантификатор будет вбирать наибольшую строку. То есть если строка длиной 10 или более символов, то в контейнер попадут именно 10, а не 2 и не 5 символов.
$1=Vasya Pupkin
$2=in
$1= Vasya Pupkin
$2=kin
$1=Vasyapupkin
$2=kin
В общем с квантификаторами можно еще много баловаться. Всего рассказать все равно не удасться. Тут только одно средство - практиковаться.
Далее на повестке дня такое понятие как альтернативные шаблоны. Это элементы регулярного выражения, которые позволяют определять несколько вариантов шаблона. Самый наглядный пример это определение протокола в строке URL
/^(http|ftp)/
Мнимый символ привязки к началу строки может быть помещен и внутри круглых скобок - результат от этого не меняется. Странно, ведь конструкция с круглыми скобками используется для определения алтернатив, ведь она же используется и для группировки в контейнер. Совершенно верно. Альтернативные шаблоны приводят к автоматическому возникновению нового контейнера. Здесь важно не облажаться и правильно определить номер контейнера при извлечении результатов. Контейнер, который был открыт ранее, имеет наименьший номер. Таким образом можно разобраться даже во вложенных контейнерах.
Есть еще одна фича, которая может вам пригодиться. Это, так называемые, дополнительные конструкции. Они позволяют выполнять проверку до или после текущего места в шаблоне, но при этом в сам шаблон не входят. Их описывать я не буду, так как это обычная справочная информация, которая имеется в любой книге по perl. Просто - что бы вы знали.
Ну и в качестве итога по курсу средней углубленности в регулярные выражения можно собрать все, что мы узнали в виде перечисления составных элементов регулярных выражений
одиночные символы (characters) - он и есть одиночный, чего его комментировать ;)
классы символов (character classes) - [], [^]
альтернативные шаблоны (alternative match patterns) - (X|X|X)
квантификаторы (quantifiers) - {}, ?, +, *
мнимые символы (assertions) - \s, ^, $, etc...
контейнеры (backreferences) - $1,$2,$x
дополнительные конструкции
От теории к практике
В perl имеются три основных оператора
Похожие работы
| Тема: Регулярные выражения в perl |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Реферат) |
| Тема: Встроенные типы данных в С#. Массивы. Строки. Регулярные выражения |
| Предмет/Тип: Отсутствует (Практическое задание) |
| Тема: Регулярные планы застройки Калуги и уездных центров XVIII века |
| Предмет/Тип: Культурология (Контрольная работа) |
| Тема: Регулярные сигналы |
| Предмет/Тип: Информатика, ВТ, телекоммуникации (Практическое задание) |
| Тема: Тромбоцитарная активность у студентов, проходящих регулярные тренировки по снарядной гимнастике |
| Предмет/Тип: Медицина, физкультура, здравоохранение (Реферат) |
Интересная статья: Основы написания курсовой работы

(Назад)
(Cкачать работу)