Слайд 2REGEX
Регулярные выражения - это поиск строк по шаблону, используемый во многих инструментах
![REGEX Регулярные выражения - это поиск строк по шаблону, используемый во многих](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-1.jpg)
обработки текста, применяемых в системном администрировании
Попросту говоря, это своего рода крошечный язык программирования, предоставляющий множество инструментов. Регулярные выражения поддерживаются большинством современных языков программирования, в которых представлены различные по удобству и функционалу средства
Слайд 3МОДУЛЬ RE
В этой лекции мы узнаем о самых основных особенностях применения RegEx
![МОДУЛЬ RE В этой лекции мы узнаем о самых основных особенностях применения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-2.jpg)
в языке Python
Для работы с регулярными выражениями в Python предусмотрен специальный модуль re. Прежде чем начать работу его нужно импортировать:
import re
Слайд 4МОДУЛЬ VS БИБЛИОТЕКА
Модуль — это часть функциональности, существующая отдельно от кода, который
![МОДУЛЬ VS БИБЛИОТЕКА Модуль — это часть функциональности, существующая отдельно от кода,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-3.jpg)
ее использует, модуль импортируется в код и используется (код использующий модуль обычно называют клиентским).
Модуль обычно узко сфокусирован и отвечает за одну узкую задачу, такие задачи могут быть как простыми, например, модуль конвертации градусов Цельсия в Фаренгейт, так и сложными, например модуль по работе с GUI операционной системы.
Библиотека — это набор разных методов и модулей.
Можно сказать, что модуль — это простой инструмент для конкретной задачи, а библиотека — швейцарский нож.
Слайд 6ДЛЯ ЧЕГО ИСПОЛЬЗУЮТСЯ РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ
Для определения нужного формата,
Например телефонного номера или email-адреса;
![ДЛЯ ЧЕГО ИСПОЛЬЗУЮТСЯ РЕГУЛЯРНЫЕ ВЫРАЖЕНИЯ Для определения нужного формата, Например телефонного номера](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-5.jpg)
Для разбивки строк на подстроки;
Для поиска,
Замены
Извлечения символов;
Для быстрого выполнения нетривиальных операций
Синтаксис таких выражений в основном стандартизирован, так что вам следует понять их лишь раз, чтобы использовать в любом языке программирования.
Слайд 7REGEX
re.match()
re.search()
re.findall()
re.split()
re.sub()
re.compile()
И т.д
![REGEX re.match() re.search() re.findall() re.split() re.sub() re.compile() И т.д](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-6.jpg)
Слайд 8REGEX
re.match(pattern, string)
Функция re.match() осуществляет поиск по заданному шаблону с начала строки
Искомая подстрока
![REGEX re.match(pattern, string) Функция re.match() осуществляет поиск по заданному шаблону с начала](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-7.jpg)
найдена. Чтобы вывести её содержимое, применим метод group() (мы используем «r» перед строкой шаблона, чтобы показать, что это «сырая» строка в Python):
Слайд 9REGEX
re.search(pattern, string)
Функция re.search() используется для поиска в строке первого вхождения заданного шаблона
Метод
![REGEX re.search(pattern, string) Функция re.search() используется для поиска в строке первого вхождения](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-8.jpg)
search() ищет по всей строке, но возвращает только первое найденное совпадение.
Слайд 10REGEX
re.findall(pattern, string)
Если нам нужно найти все вхождения, следует использовать функцию re.findall(). В
![REGEX re.findall(pattern, string) Если нам нужно найти все вхождения, следует использовать функцию](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-9.jpg)
случае успеха она возвращает список, который содержит все искомые вхождения по порядку. В противном случае функция возвратит пустой список.
Слайд 11REGEX
re.split(pattern, string, [maxsplit=0])
Функция re.split() разделяет строку по заданному шаблону. Например, разобьем строку
![REGEX re.split(pattern, string, [maxsplit=0]) Функция re.split() разделяет строку по заданному шаблону. Например,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-10.jpg)
на отдельные слова, разделенные пробелом:
Кроме того, эта функция принимает аргумент maxsplit со значением, по умолчанию равным 0. В нашем примере она разделит строку на максимальное количество частей. Если же специально задать этот аргумент, то разделение будет осуществлено не более заданного количества раз.
Слайд 13REGEX
re.sub(pattern, repl, string, count=0)
Функция re.sub() осуществляет поиск шаблона в строке, заменяя его
![REGEX re.sub(pattern, repl, string, count=0) Функция re.sub() осуществляет поиск шаблона в строке,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-12.jpg)
указанной подстрокой. В случае отсутствия шаблона никаких изменений не происходит. Для этих целей предназначена re.sub.
В качестве четвертого параметра функции можно задать количество совпадений, подлежащих изменению. По умолчанию этот параметр равен 0, то есть заменяются все найденные совпадения с шаблоном.
Слайд 17ЗАДАЧИ
Вернуть каждый символ из строки используя “.” (точку)
Вернуть каждый символ из строки
![ЗАДАЧИ Вернуть каждый символ из строки используя “.” (точку) Вернуть каждый символ](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-16.jpg)
без пробела
Вернуть каждое слово с пробелом
Вернуть каждое слово без пробела
Вернуть первое слово
Вернуть последнее слово
Слайд 18ЗАДАЧИ
Вернуть каждые 2 последующих символа без пробела
Вернуть два последовательных символа, используя символ
![ЗАДАЧИ Вернуть каждые 2 последующих символа без пробела Вернуть два последовательных символа,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/853497/slide-17.jpg)
границы слова (\b)
Вернуть все символы после знака “@”
Вернуть полную строку после @
Вернуть только доменное имя
Вернуть дату из строки