Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Электронные книги по ОС Linux
Руководство по Bash для начинающих
Назад Глава 4: Регулярные выражения Вперед

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

Что такое регулярные выражения?

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

Основными конструктивными элементами являются регулярные выражения, которые соответствуют единичному символу. Большинство символов, включая все буквы и цифры, являются регулярными выражениями, которые соответствуют сами себе. Можно отменить специальное значение любого метасимвола, если добавить перед ним обратный слеш.

Метасимволы регулярных выражений

За любым регулярным выражением может следовать один из следующих операторов повторения (метасимвол):

Таблица 4.1. Операторы регулярных выражений

ОператорДействие

.

Соответствует любому одиночному символу.

?

Предыдущий элемент необязателен и может присутствовать не более одного раза.

*

Предыдущий элемент может присутствовать ноль или большее число раз.

+

Предыдущий элемент может присутствовать один или большее число раз.

{N}

Предыдущий элемент присутствует ровно N раз.

{N,}

Предыдущий элемент может присутствовать N или большее число раз.

{N,M}

Предыдущий элемент может присутствовать по крайней мере N раз, но не более M раз.

-

С помощью этого символа задается диапазон, если это не первый и не последний элемент в списке и не завершающее значение диапазона.

^

Соответствует пустой строке в начале строки ввода (т. е. указывает начало строки ввода — прим.пер.); также представляет символы, не попадающий в диапазон, указанный в списке.

$

Соответствует пустой строке в конце строки ввода (т. е. указывает конец строки ввода — прим.пер.)

\b

Соответствует пустой строке на границе слова (т. е. в начале или конце слова, указывает на границу слова — прим.пер.).

\B

Соответствует пустой строке не на границе слова (т. е. указывает не на границу слова — прим пер.)

\<

Соответствует пустой строке в начале слова (т. е. указывает начало слова — прим.пер.)

\>

Соответствует пустой строке в конце слов слова (т. е. указывает конец слова — прим.пер.).

Можно выполнять конкатенацию двух регулярных выражений; результирующее регулярное выражение будет соответствовать любой строке, сформированной конкатенацией двух подстрок, которые соответственно представляют сконкатенированные подвыражения.

Два регулярных выражения могут быть соединены бинарным оператором "|"; результирующее регулярное выражение будет соответствовать любой строке, которое соответствует какому-нибудь одному из соединенных подвыражений.

Операция повторения имеет больший приоритет, чем конкатенация, которая, в свою очередь, имеет больший приоритет, чем операция выбора варианта. Подвыражение можно заключать в скобки для того, чтобы менять эти правила приоритета.

Сравнение базовых и расширенных регулярных выражений

В базовых регулярных выражениях символы "?" "+", "{", "|", "(" и ")" не являются метасимволами; вместо них используйте варианты с обратным слешем "\?", "\+", "\{", "\|", "\(" и "\)".

Проверьте в документации к вашей системе, имеются ли команды, позволяющие использовать расширенные регулярные выражения.


Предыдущий раздел: Оглавление Следующий раздел:
Глава 4: содержание   Примеры использования grep