|
Поиск по сайту:
Главная
О проекте
Web-мастеру
HTML & JavaScript
SSI
Perl
PHP
XML & XSLT
Unix Shell
MySQL
Безопасность
Хостинг
Другое
|
|
4.2 Регулярные выражения
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 - соответствуют алфавитные и цифровые символы а также символ подчерк
\$W - соответствуют все символы не входящие во множество символов w
\s - символы пробела, табуляции, возврата каретки
\S - все символы не входящие во множество символов s
\d - цифровые символы
\D - нецифровые символы
Обратите внимание, что \w отмечает только отдельные
символы, а не все слово. Чтобы отметить все слово нужно использовать \w+ .
Также определены следующие команды:
¯
\b - соответствуют границы слова
\B - соответствуют не-границы слова
\A - соответствуют только начало строки
\Z - соответствуют только конец строки
При использовании конструкции типа ( ... ), \<digit> подставляет подстроку из скобок с номером digit . Можно использовать скобки для отделения подшаблона. Если в скобках имеется более, чем 9 подстрок, то переменные $10 , $11 , ... содержат соответствующие подстроки. $+ возвращает то, чему соответствует последняя конструкция в скобках. $& возвращает подставленную строку. $` возвращает все перед подставленной строкой, $' возвращает все после подставленной строки.
$_ = 'abcdefghi';
/def/;
print "$`:$&:$'\n"; - напечатает abc:def:ghi
На этом мы закончим описание регулярных выражений, для более подробной информации читайте manual page .
[Назад]
[Содержание]
[Вперед]
Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
|
|
|