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 - соответствуют алфавитные и цифровые