Регулярные выражения – это контактная точка, которую вы найдете в большинстве языков программирования, и в жизни вашего разработчика будет время.
Сегодня я собираюсь проверить, как они работают в Python.
Прежде чем мы сможем использовать регулярные выражения в Python, мы должны импортировать модуль. Он поставляется со стандартным пакетом, поэтому установка PIP не требуется.
import re
Есть несколько функций, которые мы можем использовать для регулярных выражений, и они есть:
Findall
: Вернуть список всех совпаденийпоиск
: Вернуть объект сопоставления, если есть совпадениеСплит
: Вернуть список разделенных матчейsub
: Заменить один или несколько совпадений на строку
Тогда есть целый набор символов и последовательностей, в которые я не буду глубже погружаться. Я бы настоятельно предложил посмотреть на инструмент регуляции, такой как Pythex Анкет
Поиск всех результатов
Начнем с рассмотрения Findall
функция и как это работает.
import re string = "he was close to hearing the rain" x = re.findall("he", string) print(x)
Этот пример будет искать все случаи он
и вернет список, в котором говорится:
['he', 'he', 'he'] # he, hearing, the
Это вернет пустой список, если ничего не найдено.
Функция поиска регулярного выражения Python
Еще одним отличным дополнением является поиск регулярных выражений. Давайте сначала посмотрим, как это работает на основе приведенного выше примера.
string = "he was close to hearing the rain" x = re.search("he", string) print(x)
Объект совпадения выглядит примерно так:
Мы можем использовать функции начала и конечности в этом результате, чтобы получить эту позицию так:
string = "he was close to hearing the rain" x = re.search("\s", string) print("he word starting on position:", x.start(), "and ending on:", x.end())
Что приведет к:
he word starting on position: 2 and ending on 3
Разделение регулярного выражения приводит к Python
Довольно распространенный подход для корпорации – разделить результаты на список. Допустим, мы хотим разбить все места в предложении:
string = "he was close to hearing the rain" x = re.split("\s", string) print(x)
Дает нам следующий список:
['he', 'was', 'close', 'to', 'hearing', 'the', 'rain']
Мы также можем дать количество расколов, которые мы хотим сделать, поэтому нам нужно только первое явление.
string = "he was close to hearing the rain" x = re.split("\s", string, 1) print(x)
Дает нам:
['he', 'was close to hearing the rain']
Замена регулярных матчей выражения в Python
То, что мы, однако, хотим сделать в некоторых случаях, так это заменить конкретные совпадения.
Допустим, мы хотим конвертировать все пространства в тире.
string = "he was close to hearing the rain" x = re.sub("\s", '-', string) print(x)
Даст нам следующий результат:
he-was-close-to-hearing-the-rain
Что очень полезно для имен файлов, например,!
Спасибо за чтение, и давайте подключимся!
Спасибо за чтение моего блога. Не стесняйтесь подписаться на мою рассылку электронной почты и подключиться на Facebook или Твиттер
Оригинал: “https://dev.to/dailydevtips1/regular-expressions-in-python-5ab5”