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

В этой статье мы рассмотрим, как использовать один из основных методов регулярных выражений в python ‘re.findall()’ для извлечения строковых выражений.

Сначала подключим модуль регулярных выражений ‘re’:

import re

Предположим, что у нас есть следующая строка:

test_string1 = 'Python is Amazing!'

Регулярное выражение r “^w+” в re.findall() вернет начало входной строки:

regex_1 = re.findall(r"^w+",test_string1)
print(regex_1)

В выражении r “^w+” символ «^» соответствует началу строки, а «w+» находит буквенно-цифровые символы.

Если удалить ‘^’, то получим:

regex_1 = re.findall(r"w+",test_string1)
print(regex_1)

Попробуем извлечь начало другой строки:

test_string2 = 'Java is Amazing!'

Затем применим ‘re.findall()’, чтобы найти первое слово этой строки:

regex_2 = re.findall(r"^w+",test_string2)
print(regex_2)

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

youtube_titles = [("How to Tell if We're Beating COVID-19", 2200000), ("Extreme Closet Clean Out",326000), ("This is $1,000,000 in Food",8800000), ("How To Tell If Someone Truly Loves You ", 2800000), ("How to Tell Real Gold from Fake", 2300000), ("Extreme living room transformation ", 25000)]

Можно найти первое слово каждого заголовка следующим образом:

or title in youtube_titles:
print(re.findall(r"^w+",title[0])[0])

И добавить полученные значения в список:

first_words = []
for title in youtube_titles:
first_words.append(re.findall(r"^w+",title[0])[0])
print(first_words)

Или представить данные в виде списка:

first_words = []
views = []
for title in youtube_titles:
first_words.append(re.findall(r"^w+",title[0])[0])
views.append(title[1])

Затем можно создать DataFrame из первых слов заголовка и просмотров видео:

import pandas as pd
df = pd.DataFrame({'first_words': first_words, 'views':views})
print(df)

А также выполнить группировку и вычислить средние значения для каждого первого слова:

df = df.groupby('first_words')['views'].mean()
print(df)

Отсортируем эти значения в порядке убывания:

df = df.groupby('first_words')['views'].mean().sort_values(ascending = False)
print(df)

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

Заключение

В этой статье мы рассмотрели, как использовать метод re.findall() модуля регулярных выражений Python. Код приведенных в ней примеров доступен на GitHub.

Пожалуйста, опубликуйте ваши комментарии по текущей теме статьи. Мы крайне благодарны вам за ваши комментарии, подписки, отклики, дизлайки, лайки!

Данная публикация является переводом статьи «Regular Expressions in Python» , подготовленная редакцией проекта.

Меню