Приглашаем посетить
Пушкин (pushkin-lit.ru)

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

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

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

$str = “ January 1, 1997, ”;

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

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

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

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

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

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

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

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

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

Назад | Оглавление | Далее