Использование технологий WWW для доступа к базам данных




Регулярные выражения


Perl позволяет использовать регулярные выражения.

Для того чтобы пояснить, что же представляет из себя регулярное выражение

приведем несколько примеров:

/SWAP.*/ - соответствуют все слова начинающиеся со SWAP и заканчивающихся

произвольным набором символов. Точка обозначает произвольный символ, звездочка -

то, что символ, стоящий перед ней, входит в слово 0 и более раз. Все метасимволы,

которые будут описаны ниже, бозначают вхождение того, что стоит перед ними.

/\w*/ - соответствуют слова состоящие только из алфавитных, цифровых

символов и символа подчерк. \w - соответствует алфавитным, цифровым

символам и символу подчерк, звездочка - тому, что эти символы могут входить

произволное количество раз.

Здесь мы приведем

только основные метасимволы. Для более подробной информации смотрите

соответствующие страницы man по Perl.

?

* соответствует 0 или более вхождений

+ соответствует 1 или более вхождений

? соответствует 1 или 0 вхождений

{n} соответствует ровно n вхождений

{n,} соответствует по крайней мере n вхождений

{n,m} соответствует по крайней мере n,

но не более m вхождений

Метасимвол * эквивалентен {0,}, + эквивалентен

{1,} и ? эквивалентен {0,1}. Ограничений на величину m и n

нет. Эта стандартная конструкция работает в ``жадном'' режиме, то есть:

регулярному выражению a.*b будет соответствовать всевозможный набор слов начинающихся

с символа a и кончающихся символом b, в том числе слова типа abcab. В таких

словах есть подпоследовательности символов, которые также удовлетворяют условиям

регулярного выражения. Если после каждого из описанных метасимволов поставить знак

?, то подобные последовательности будут опускаться.

Шаблоны обрабатываются как строка в двойных кавычках, поэтому приведенные ниже

последовательности также будут обрабатываться:

?

\l - передвижение на символ вниз

\u - передвижение на символ вверх

А также все перечисленные ранее бакслэш-последовательности.

В Perl-е определены также:

?

\w - соответствуют алфавитные и цифровые




Содержание  Назад  Вперед