Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / Perl / Спецификация языка Perl /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Регулярные выражения - Программирование от RIN.RU
Регулярные выражения

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.



 8  Комментарии к статье  8  Обсудить в форуме  8  Обсудить в чате

8  В тему

Cтруктуры данных

Синтаксис языка Perl

Операторы языка Perl

Ссылки

Зарезервированные переменные

Встроенные функции

Подпрограммы и модули

Объектная ориентация

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь