Connect with us

Обучение

Заметки Python #11: Регулярные выражения, шаблоны

 

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

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

Регулярное выражение — это последовательность символов, используемая для поиска и замены текста в строке или файле. Чтобы его использовать нужно импортировать модуль regular expression — import re. Как это работает на практике? Рассмотрим функцию findall

 

Результат:

Другие шаблоны

 

Шаблон — это строка, которая включает в себя символы, которые в свою очередь означают, что в слове они могут присутствовать. Попробуем использовать другие шаблоны для для функции findall

. — любой символ (кроме переноса строки)

\d — обозначает символ цифры

\D — наоборот, любой символ, кроме цифры

\s — любой пробельный символ

\S — что угодно, кроме пробельного

\w — все символы от 0-9, a-z, A-Z, а-я, А-Я и нижнее подчеркивание _

\W — все остальные символы, например, пробельные или все спецсимволы

Например (можно использовать «\d+»)

Результат:

+ — это квантификатор. Это значит мы ищем символы идущие подряд. Т.е. ищем все цифры идущие подряд и получаем число

Настройка и создание шаблонов

Шаблоны можно подстраивать под самые различные ситуации. Мы уже знаем шаблон с обратным слэшем. Еще можно использовать шаблон с квантификатором ?. Это означает, что данный символ может быть на том месте, а может и нет. Как это выглядит?

 

? — символ или есть или его нет

* — символ может быть повторен ноль или множество раз

 

Результат:

Шаблон можно настроить иначе, написав в квадратных скобках перечень символов, которые должны входить в новую строку. Записать можно следующим образом:

Результат: (в первом случае результат с точкой в выборку не попал. Во втором мы подправили шаблон)

Взаимозаменяемые шаблоны

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

 

 

Результат

Квантификатор количества повторений

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

Результат:

Чтобы исключить ситуации, когда в фильтр попадают не нужные значения (например в фильтр … попадут слова с ….) можно использовать квантификатор «что угодно, кроме». Например, запись newtext = re.findall(«\w+\.{2,3}[^\.]», text) будет означать, что фильтр после троеточия не допускает еще один символ точки.

Функция re.sub

Чтобы изменять текст в коде существует регулярные выражения с функцией re.sub. Она принимает три аргумента: строка (шаблон, который мы хотим изменить), строка на которую мы меняем, источник текста)

 

Результат:

Функция re.compile

Служит для создания объектов-шаблонов, чтобы подставлять их в привычные места (например, куда нужно передать аргумент в методе findall). Т.е вместо

re.findall (pattern, text)

Мы используем:

shablon = re.complie (pattern)

shablon.findall (some_text1)

shablon.findall (some_text2)

shablon.findall (some_text3)

Посмотрим на практике:

Результат:

Функция re.search

Функция re.search отдаёт нам результат в виде его положения в тексте, где найдено значение (его первое вхождение), указанное в шаблоне (pattern). Возвращаемый объект имеет тип re.match

 

Результат:

Click to comment

Leave a Reply

Ваш e-mail не будет опубликован.

Лучшие сервисы стриминга музыки в 2019 году

Сервисы

Wink Ростелеком: Samsung LG, Sony, Phillips, Android TV

Ростелеком

LG WEB OS: приложения, обновления, настройка, проблемы со звуком

Гаджеты

Ноутбуки Asus не видят жесткий диск. Автоматический вход в BIOS при старте

Гаджеты

.

Digital2.ru - тренды, IT, разработка, цифровая экономика

Connect
Подпишись на нас