Учебники

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

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

Регулярные выражения — это специальные символы, которые помогают искать данные, соответствующие сложным шаблонам. Регулярные выражения сокращаются до ‘regexp’ или ‘regex’.

Типы регулярных выражений

Для простоты понимания давайте изучим различные типы регулярных выражений один за другим.

Нажмите здесь, если видео не доступно

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

Некоторые из часто используемых команд с регулярными выражениями: tr, sed, vi и grep. Ниже перечислены некоторые из основных регулярных выражений.

Символ Описания
, заменяет любой персонаж
^ соответствует началу строки
$ соответствует концу строки
* соответствует нулю или более раз предыдущего символа
\ Представляют специальные символы
() Группы регулярных выражений
? Соответствует ровно одному персонажу

Давайте посмотрим на пример.

Выполните пример cat, чтобы увидеть содержимое существующего файла

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

Поиск содержимого, содержащего букву «а».

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

« ^ » соответствует началу строки. Давайте искать контент, который начинается с

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

Только строки, начинающиеся с символа, фильтруются. Строки, которые не содержат символ «а» в начале, игнорируются.

Давайте посмотрим на другой пример —

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

Выберите только те строки, которые заканчиваются на t, используя $

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

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

Эти выражения говорят нам о количестве вхождений символа в строку. Они есть

выражение Описание
{П}

Соответствует предыдущему символу, появляющемуся ‘n’ раз точно

{П, т} Соответствует предыдущему символу, появляющемуся ‘n’ раз, но не более чем m
{п,} Соответствует предыдущему символу, только если он появляется «n» раз или более

Пример:

Отфильтровать все строки, содержащие символ «p»

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

Мы хотим проверить, что символ «p» встречается ровно 2 раза в строке один за другим. Для этого синтаксис будет:

cat sample | grep -E p\{2}

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

Примечание: вам нужно добавить -E с этими регулярными выражениями.

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

Эти регулярные выражения содержат комбинации более чем одного выражения. Некоторые из них:

выражение Описание

\ +

Соответствует одному или нескольким вхождениям предыдущего символа

\?

Соответствует нулю или одному вхождению предыдущего символа

Пример:

Поиск всех символов ‘t’

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

Предположим, мы хотим отфильтровать строки, в которых символ ‘a’ предшествует символу ‘t’

Мы можем использовать команду как

cat sample|grep "a\+t"

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

Расширение скобки

Синтаксис раскрытия фигурных скобок — это либо последовательность, либо разделенный запятыми список элементов внутри фигурных скобок «{}». Начальный и конечный элементы в последовательности разделены двумя точками «..».

Некоторые примеры:

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

В приведенных выше примерах команда echo создает строки, используя расширение скобок.

Резюме:

  • Регулярные выражения — это набор символов, используемый для проверки шаблонов в строках.
  • Их также называют «регулярное выражение» и «регулярное выражение»
  • Важно выучить регулярные выражения для написания скриптов
  • Некоторые основные регулярные выражения:
Символ Описания
, заменяет любой персонаж
^ соответствует началу строки
$ соответствует концу строки
  • Некоторые расширенные регулярные выражения:
выражение Описание
\ + Соответствует одному или нескольким вхождениям предыдущего символа
\? Соответствует нулю или одному вхождению предыдущего символа
  • Некоторые интервальные регулярные выражения:
выражение Описание
{П} Соответствует предыдущему символу, появляющемуся ‘n’ раз точно
{П, т} Соответствует предыдущему символу, появляющемуся ‘n’ раз, но не более чем m
{п,} Соответствует предыдущему символу, только если он появляется «n» раз или более
  • Расширение скобок используется для генерации строк. Это помогает в создании нескольких строк из одной.