ГлавнаяОперационные системыLinuxРуководство для начинающих по регулярным выражениям

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

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

К счастью, есть способ выделить точные закономерности в тексте вплоть до символа. Он называется регулярными выражениями (RegEx) и позволяет вам стать мастером поиска по тексту.

Читайте также: Как использовать регулярные выражения для повышения производительности в повседневных задачах

Где я могу использовать RegEx?

Хотя Unix и Linux сделали их популярными, регулярные выражения доступны в различных пакетах, включая Microsoft Word.

обычные выражения

Регулярные выражения чаще всего используются в нескольких известных программах Linux, включая grep, Awkи Sed.

Например, вы можете проверить USB-устройства на вашем компьютере. Используя ls

Где я могу использовать RegEx?

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

lspci | grep "USB"

Это простейший пример использования RegEx в действии. Это самый популярный способ использования регулярных выражений в терминале, но не единственный. Сегодня поддержку RegEx можно найти во многих типах программного обеспечения, от текстовых редакторов до файловых менеджеров.

Нахождение закономерностей

Возможно, вы использовали символ *, который действует как подстановочный знак при выборе файлов или папок в терминале. Например, чтобы вывести список всех файлов JPG в папке, вы можете использовать:

ls *.jpg

Эквивалент приведенного выше RegEx:

ls | grep -E "\.jpg"
Введение в фильтр регулярных выражений в формате JPG

Для поиска файлов в формате jpg и png используйте:

ls | grep -E "(\.jpg|\.png)"

Диапазоны

Если вы хотите искать определенный диапазон символов вместо шаблона, вы можете сделать это, заключив его в скобки. Если, например, вы используете [a-z]в качестве шаблона, он будет соответствовать любой строке, состоящей из любых строчных букв алфавита.

Как вы уже догадались, [A-Z]будет выбирать только заглавные буквы. Чтобы выбрать любой диапазон букв, как в

Нахождение закономерностей

ыражение изменится на [a-zA-Z].

Чтобы найти определенное количество экземпляров вашего шаблона, вы можете указать его в фигурных скобках. {5}вернет пять вхождений вашего шаблона. Вы также можете использовать диапазоны чисел, поэтому {5,10}предоставит вам от пяти до десяти экземпляров.

Метасимволы

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

Основной является простая точка, которая обозначает любой другой одиночный символ. Если вы использовали шаблон c.ll, он будет соответствовать «ячейке», а также «отбраковке» и «вызову».

Введя звездочку после точки, вы можете использовать ее для сопоставления бесконечному числу символов. Например, .*boardбудет соответствовать как «клавиатуре», так и «скейтборду». даже если в словах «ключ» и «скейт» разное количество букв.

Побег

Вы могли заметить, чт

Диапазоны

где мы выбрали разные типы файлов изображений, мы использовали обратную косую черту перед точкой («\.jpg»). Вот как можно экранировать специальные символы в RegEx.

Если бы мы их не использовали, наш шаблон соответствовал бы не только расширениям файлов (строкам типа «.jpg» и «.png»), но также соответствовал бы «ajpg» и «opng». Помните, что . – это подстановочный знак, который соответствует любому символу.

Якоря и границы

Якоря и границы позволяют более точно определить, что вы ищете.

Чтобы найти только отдельное слово «компьютер» без каких-либо других символов до или после него, вам следует определить шаблон как \<computer\>.

Вы также можете выполнять поиск по шаблонам, которые появляются в начале или конце строки. Это достигается с помощью символов ^и $соответственно.

Итак, если вы хотите найти только те записи, в которых слово «компьютер» встречается в начале строки, ваш шаблон будет выглядеть как ^computer. Напротив, когда он находится в конце строки, шаблон изменится на computer$.

Это простые правила RegEx, которые вы также можете комбинировать, чтобы найти именно те шаблоны, которые вам нужны. Вы можете искать диапазоны символов в начале строки или чередующ

Метасимволы

определенные даты или диапазон лет, используя одну строку текста.

Не забудьте просмотреть наш Шпаргалка по регулярным выражениям , чтобы освоить регулярные выражения.

Побег

Якоря и границы

ПОХОЖИЕ СТАТЬИ

Популярные записи