Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / 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
Регулярные выражения



Иcпользование регулярных выражений для поиска по ключевым словам


Скрипты языка Perl используют регулярные выражения для того, чтобы упростить сравнение строк. Для того чтобы проверить, содержит ли строка заданный образец, скрипт может использовать регулярные выражения следующим образом:


if ($str =~ /pattern/)


В данном случае регулярные выражения принимают значение <истинно>, если образец найден в строке ($str). Если строка по содержит образца, то выражение возвращает значение <ложно>. Например, следующее выражение проверяет, содержит ли строка текст WebProgramming:


if ($str =~ /Web Programming/)


Для того, чтобы проверить полное совпадение, выражение должно привязать сравнение к началу и концу строки. Например, следующее выражение имеет значением величину <истинно>, если итолько если переменная $str принимает одно из трех значений: , , :


($str =~ /^ba(na) {2,4}$/)


Аналогичным образом, следующее выражение истинно тогда итолько тогда, когда переменная $str содержит слово и не является частью другого слова, такого как .


($str =~ /\bthe\b/)


Использование регулярных выражений для анализа входных данных


По мере усложнения ваших скриптов Perl возникнет много случаев, когда вы захотите узнать больше, чем просто проверить, совпадает ли образец со строкой или нет. Например, может потребоваться, чтобы скрипт извлек определенное значение строки. Используя символы группировки () внутри регулярного выражения, скрипт может извлечь соответствующие образцу значения из строки и сформировать из них список. Например, следующий фрагмент программы использует регулярные выражения для того, чтобы извлечь месяцы, дни и годы из списка:


$str = " January 1, 1997, ";
($m, $d, $y) = $str =~ /\s*(\S*)\s + (\d+)\D + (\d{4})/;


В этом случае можно прочитать регулярные выражения следующим образом:


  • Пропустить вначале любой специальный символ;

  • записать все символы, не являющиеся специальными, в переменную $m (переменная для обозначения месяцев);

  • пропустить специальный символ;

  • поместить все цифры в переменную $d (переменная для записи дней);

  • пропустить все знаки, не являющиеся цифрами;

  • записать четыре цифры в переменную $у (переменная для обозначения лет).


Perl поддерживает также другую форму сравнения с образцом,использующую оператор (=~), который добавляет отрицание результата: (!~). Этот оператор эквивалентен выражению !($str=~/pattern/).


<<<  НазадВперед  >>>
 1  2  3 


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

8  В тему

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

Типы данных в PERL

Переменные

Операторы PERL

Конструкции языка PERL

Подпрограммы

Обработка строк

Обработка списков

Работа с массивами

Функции обработки ассоциативных массивов

Файловый ввод и вывод

Обработка бинарных данных

Работа с каталогами

Форматированный вывод

CGI-скрипты при помощи PERL

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