Python Regex: сопоставление с образцом с помощью модуля re
Освойте регулярные выражения (Regex) в Python. Научитесь искать, сопоставлять, разбивать и заменять строковые данные с помощью встроенной библиотеки re.
Обзор
Регулярные выражения (часто сокращаемые до регулярных выражений) — это мини-язык, используемый для расширенного поиска текста, сопоставления строк и манипуляций. Вместо проверки простых строковых значений регулярное выражение позволяет определять сложные шаблоны для поиска внутри больших объемов текста. Например, найти все адреса электронной почты, номера телефонов или URL-адреса в документе легко выразить с помощью регулярного выражения, но невероятно сложно написать с использованием обычных строковых методов.
Python предоставляет встроенную поддержку регулярных выражений через модуль re. Модуль включает в себя важные функции, такие как re.search() для поиска первого совпадения, re.findall() для получения всех совпадающих подстрок в виде списка и re.finditer() для перебора объектов соответствия. Каждый объект соответствия предоставляет метаданные, такие как точный индекс начальной и конечной позиции соответствующей подстроки, а также сам соответствующий текст.
В шаблонах регулярных выражений используются специальные метасимволы: `\d` соответствует любой цифре, `\w` соответствует буквенно-цифровым символам, `+` соответствует одному или нескольким повторениям, а скобки `[...]` определяют наборы символов. Группировка с помощью круглых скобок `(...)` позволяет выделить определенные части шаблона. Кроме того, re.sub() позволяет вам искать шаблон и заменять его новой строкой. Хотя регулярное выражение требует сложного обучения, его освоение предоставит вам невероятно быстрый и универсальный инструмент для обработки текста.
Код и вывод выполнения
Использование модуля re для проверки и извлечения компонентов адреса электронной почты.
import re
text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."
# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"
# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
print(f"User: {user} | Domain: {domain}")
# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz
Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.Пошаговая реализация
- Проверка ввода формата (электронная почта, телефоны, пароли)
- Анализ журналов доступа к серверу на предмет кодов состояния
- Извлечение информации из необработанного HTML и отчетов об уценке
Часто задаваемые вопросы
Каково значение префикса «r» в шаблонах регулярных выражений?
Он обозначает «необработанную строку». Необработанные строки обрабатывают обратную косую черту (\) как литеральные символы, а не escape-символы, что позволяет избежать синтаксических конфликтов с подстановочными знаками регулярных выражений.
В чем разница между повторным сопоставлением и исследованием?
re.match проверяет совпадение только с самого начала строки, а re.search сканирует всю строку на наличие совпадений.
Связанные темы
Мастер манипуляций со строками в Python. Изучите строковые методы, методы нарезки, конкатенации и форматирования на понятных примерах исполняемого кода.
Ввод-вывод файлов PythonУзнайте, как читать и записывать файлы на Python. Освойте open(), read(), write() и менеджеры контекста для безопасной обработки файловых операций без утечек ресурсов.
Рекомендуемые ресурсы Python
Расширьте свои знания с помощью соответствующих интерактивных руководств, шпаргалок и сравнений кода.
Как отсортировать список в Python
Узнайте, как сортировать список в Python с помощью метода sort() и функции sorted(). Ознакомьтесь с примерами пользовательской сортировки ключей и обратного порядка.
Шаблоны регулярных выражений Python (перемодуль) Шпаргалка
Справочное руководство по регулярным выражениям Python. Изучите шаблоны сопоставления, поиска, поиска, подзаголовков и основные шаблоны регулярных выражений.
Python против JavaScript: какой язык программирования лучше?
Всестороннее сравнение Python и JavaScript. Изучите синтаксические различия, производительность, варианты использования (серверная и клиентская части) и примеры кодирования.