ПРОЩЕ СКАЗАТЬ:
Работа с регулярными выражениями
Модуль re в Python предоставляет функционал для работы с регулярными выражениями.
Регулярные выражения - это строки, используемые для поиска шаблонов в других строках.
Поиск слова "Победа" в строке:
import re
result = re.search(r'Победа', 'Великая Победа в Великой войне!')
print(result.group(0))
Результат
Победа
Проверка наличия цифр в строке:
import re
year = "2024"
result = re.search(r'\d', f'Год {year}')
if result:
print('РЕЗЮМЕ: \nЦифры присутствуют, даже если они представлены строкой.')
Результат
РЕЗЮМЕ:
Цифры присутствуют, даже если они представлены строкой.
Поиск всех цифр в строке:
import re
result = re.findall(r'\d', 'Год 2024')
print(*result, sep=' ')
Результат
2 0 2 4
Поиск всех слов, начинающихся с буквы "L" в строке:
import re
result = re.findall(r'\b[LH]\w+', 'Операционная система LINUX')
print(*result, sep=' ')
Результат
LINUX
Перестановка запятой в строке:
import re
result = re.sub(r'Казнить, нельзя помиловать', 'Казнить нельзя, помиловать', 'Казнить, нельзя помиловать')
print(result)
Результат
Казнить нельзя, помиловать
Поиск всех литералов, состоящих только из букв:
import re
result_1 = re.findall(r'\b[A-Za-z]+\b', 'The year 2024 has arrived')
result_2 = re.findall(r'\b[А-Яа-я]+\b', 'Наступил 2024 год')
print(*result_1, sep=' ')
print(*result_2, sep=' ')
Результат
The year has arrived
Наступил год
Поиск всех email адресов в строке:
import re
result = re.findall(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b', 'Email me at ap@example.ru')
print(*result, sep=' ') # выведение списка без скобок и запятых
Результат
ap@example.ru
Поиск всех доменных имен в строке:
import re
result = re.findall(r'(?:https?://)?(?:www\.)?([a-zA-Z0-9.-]+)', 'Посетите сайт http://www.example.com')
print(*result, sep=' ')
Результат
example.com
Поиск всех совпадений в строке:
# Этот пример находит все слова в строке, которые имеют длину ровно 6 символов.
import re
pattern = r'\b\w{6}\b'
string = "Пример, который является для нас примером во всем и всегда."
matches = re.findall(pattern, string)
print(*matches, sep=' ')
Результат
Пример всегда
Этот пример удаляет все цифры из строки:
import re
pattern = r'\d+'
string = "1 деталь"
new_string = re.sub(pattern, '', string)
print(new_string)
Результат
деталь
Этот пример проверяет, содержится ли слово "программа" в строке.
import re
pattern = r'\bпрограмма\b'
string = "Проводится тестирование многих программ. Каждая программа тестируется особым образом."
if re.search(pattern, string):
print("Слово программа представлено в тексте.")
else:
print("Слово программа не представлено в тексте.")
Результат
Слово программа представлено в тексте.
Этот пример находит все email адреса в тексте.
import re
pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b'
text = "В данном тексте представлены адреса: guest1@gmail.com or guest2@gmail.com"
emails = re.findall(pattern, text)
print(*emails, sep=', ')
Результат
guest1@gmail.com, guest2@gmail.com
Поиск всех URL в тексте
import re
pattern = r'https?://(?:[-\w.]|(?:%[\da-fA-F]{2}))+'
text = "Посетите сайт http://www.example.com и https://www.example_2.com"
urls = re.findall(pattern, text)
print(*urls, sep=', ')
Результат
http://www.example.com, https://www.example_2.com
Этот пример находит все хэштеги в тексте.
import re
pattern = r'\B#\w*[a-zA-Z]+\w*'
text = "Я изучаю #python и люблю #programming"
hashtags = re.findall(pattern, text)
print(*hashtags, sep=', ')
Результат
#python, #programming
Поиск всех дат в тексте
import re
pattern_1 = r'\b(?:[0-2]?[0-9]|3[01])/(?:0?[1-9]|1[0-2])/[0-9]{4}\b'
pattern_2 = r'\b(?:[0-2]?[0-9]|3[01]).(?:0?[1-9]|1[0-2]).[0-9]{4}\b'
text_1 = "Поездка назначена на 1/6/2024 года"
text_2 = "Поездка назначена на 1.6.2024 года"
dates_1 = re.findall(pattern_1, text_1)
print(*dates_1, sep=', ')
dates_2 = re.findall(pattern_2, text_2)
print(*dates_2, sep=', ')
Результат
1/6/2024
1.6.2024
Разделение строки на подстроки
import re
pattern = r'\s+'
string = "В каждой шутке есть его доля"
words = re.split(pattern, string)
print(*words, sep=', ')
Результат
В, каждой, шутке, есть, его, доля
Поиск всех чисел, оканчивающихся на определенную цифру
import re
pattern = r'\b\d*[135]\b'
string = "Числа, оканчивающиеся на 5 кратны 5, 15 и 25"
matches = re.findall(pattern, string)
print(matches)
Результат
['5', '5', '15', '25']
Поиск всех символов пунктуации
import re
pattern = r'[^\w\s]'
string = "Привет друг! Я рад приветствовать Вас, дорогой гость!"
matches = re.findall(pattern, string)
print(*matches, sep=' ')
Результат
! , !
PYTHON во фронтенде на WEB-странице в HTML через фреймворк PyScript ▼
Модуль re стандартной библиотеки Python позволяет выделить доменные имена из текста, используя шаблон.
Вывод доменных имен в произвольном тексте из 3-х предложений:
import re
result = re.findall(r'(?:https?://)?(?:www\.)?([a-zA-Z0-9.-]+)', 'Совершенно произвольный выбор example1.com, где требуется найти все перечисленные в тексте все доменные имена example2.com и посетите сайт http://www.example3.com')
print(*result, sep=' ')
▲ Результат работы PyScript на WEB-странице
Изделия из дерева
Декор Модели Резьба
Авторские работы
Нижний Новгород
ПРОЕКТИРОВАНИЕ
ИЗГОТОВЛЕНИЕ
РЕСТАВРАЦИЯ









