Поиск

Поиск по шаблону

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

Для этого нужно уметь распознавать в потоке ввода фрагменты текста, соответствующие некоторым шаблонам, извлекать данные с использованием этих шаблонов и, возможно, преобразовать эти данные в более удобную для использования форму. Регулярные выражения— одно из средств Perl, предназначенное для выполнения этих задач. Заметим, что в данной книге термины регулярное выражение и шаблон являются эквивалентными.

Регулярные выражения — это фактически язык в языке. Они предоставляют формальный метод описания шаблонов для поиска. На этом занятии мы рассмотрим только начальные сведения о языке регулярных выражений.

В документации содержится намного более подробное (и гораздо более.трудное для восприятия) описание языка регулярных выражений в Perl {обратитесь к странице perl re). Это настолько сложная тема, что ей посвящены целые книги. Сообщество Perl для дальнейшего изучения регулярных выражений рекомендует книгу Джеффри Фрейдла (Jeffrey E. F. FreidI) Mastering Regular Expressions (Sebastopol: O'Reilly, 1997). В ней рассматривается использование регулярных выражений не только в Perl, но именно Perl уделено особое внимание.

Регулярные выражения используются и в других языках программирования, включая TCL, JavaScript, Python и С, а также во многих утилитах операционной системы UNIX. В Perl регулярные выражения представлены достаточно полно, и их знание поможет вам в освоении других языков программирования.

Основные темы этого занятия.

  • Как создавать простые регулярные выражения.
  • Как использовать регулярные выражения для поиска по шаблону.
  • Как редактировать строки при помощи регулярных выражений.