Интеллектуальная генерация и объяснение регулярных выражений, поддержка различных распространенных шаблонов сопоставления
Преобразуйте ваши текстовые инструкции в формулы или получите объяснения формул.
Редактируйте Excel онлайн, общаясь с ИИ
Преобразуйте ваши текстовые инструкции в SQL-запросы с помощью ИИ.
Генерируйте код Excel VBA для автоматизации задач и создания пользовательских решений в Microsoft Excel.
Загрузите свой файл Excel и создайте красивые графики с помощью нашего генератора графиков на основе ИИ.
Преобразуйте ваш текст в красивые ментальные карты с помощью нашего генератора ментальных карт на основе ИИ. Легко редактируйте и настраивайте.
Используйте ИИ для интеллектуальной генерации и объяснения регулярных выражений, поддержка сопоставления текстовых шаблонов и проверки данных.
Генерируйте красивые изображения из текстовых описаний с помощью ИИ, с несколькими размерами. Бесплатно!
Регулярные выражения являются мощным инструментом для обработки текста, широко используемым в анализе данных Python, веб-скрейпинге, обработке логов и других областях. Этот учебник поможет вам систематически освоить модуль re в Python и продемонстрирует, как эффективно обрабатывать текстовые данные на практических примерах.
Регулярные выражения играют важную роль в обработке данных:
Исследования показывают, что профессиональные разработчики могут значительно повысить эффективность работы, используя регулярные выражения в задачах обработки текста, особенно при работе со сложными текстовыми шаблонами.
import re
pattern = r"hello"
text = "hello world"
result = re.match(pattern, text)
if result:
print("Совпадение успешно:", result.group()) # Вывод: hello
text = "Python最新版本3.9发布了" # Note: Keeping original string data
match = re.search(r'\d+.\d+', text)
if match:
print("Найден номер версии:", match.group()) # Вывод: 3.9
contact_info = "邮箱: [email protected], 客服: [email protected]" # Note: Keeping original string data
emails = re.findall(r'[\w\.-]+@[\w\.-]+', contact_info)
print(emails) # ['[email protected]', '[email protected]']
Символ | Описание функции | Практический пример |
---|---|---|
. | Совпадает с любым одним символом | a.c → “abc” |
\d | Совпадает с цифровым символом | \d\d → “42” |
\w | Совпадает с символом слова | \w+ → “Var123” |
\s | Совпадает с пробельным символом | a\sb → “a b” |
Квантификатор | Правило совпадения | Типичное использование |
---|---|---|
* | Ноль или более вхождений | a*b → “b”, “aaaab” |
+ | Одно или более вхождений | a+b → “ab”, “aaaab” |
{n,m} | От n до m вхождений | a{2,4}b → “aab”, “aaaab” |
log_entry = "2023-05-15 14:30:22 [ERROR] System crash"
match = re.match(r'(\d{4}-\d{2}-\d{2}) (\d{2}:\d{2}:\d{2}) \[(\w+)\]', log_entry)
if match:
date, time, level = match.groups()
print(f"Ошибка произошла {date} в {time}, Уровень: {level}")
html_content = "<p>第一段</p><p>第二段</p>" # Note: Keeping original string data
# Жадный режим
print(re.findall(r'<p>(.*)</p>', html_content))
# Нежадный режим
print(re.findall(r'<p>(.*?)</p>', html_content))
# Извлечь Python, за которым следует цифра
code_text = "Python3 Python2 Python"
print(re.findall(r'Python(?=\d)', code_text))
# Извлечь Python, за которым не следует цифра
print(re.findall(r'Python(?!\d)', code_text))
contact_text = "办公室: 010-87654321, 手机: 13912345678" # Note: Keeping original string data
phone_numbers = re.findall(r'\b\d{3}-\d{8}\b|\b1[3-9]\d{9}\b', contact_text)
print(phone_numbers) # ['010-87654321', '13912345678']
def check_password_strength(password):
"""Проверяет, содержит ли пароль буквы верхнего и нижнего регистра и цифры, длина 8-20 символов"""
pattern = r'^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\w]{8,20}$'
return re.match(pattern, password) is not None
print(check_password_strength("Secure123")) # True
print(check_password_strength("weak")) # False
Повышение эффективности регулярных выражений:
re.compile()
для
предварительной компиляции часто используемых шаблонов
(?:...)
Предотвращение типичных ошибок:
.
,
*
, +
, ?
, должны
быть правильно экранированы
\u
для совпадения с символами
Unicode
^[w\.-]+@[\w\.-]+\.\w+$
https?://[^\s]+
[\u4e00-\u9fa5]
\d{4}-\d{2}-\d{2}