Python_tutorial
  • Вступление
  • Web
    • Введение в web-программирование
  • Основы программирования
    • Файл-менеджмент
    • Алгоритм. Блок-схема
    • Обзор языков программирования
  • Введение в Python
    • Особенности языка Python
    • Установка. Использование
    • Основные определения. Простые типы данных
    • Переменные*
    • Встроенные функции. f-строки
    • Ошибки
    • Основы командной строки
  • Операторы ветвлений, циклы, исключения
    • Условные конструкции и их синтаксис
    • Циклы
    • Обработка исключений
  • Строки. Списки
    • Строки
    • Регулярные выражения (regex)*
    • Списки
    • Изменяемые и неизменяемые объекты в Python*
    • Практика
  • Функции
    • Введение в функции. Модули
    • Функции. Продолжение
    • Функциональное программирование
    • Замыкания. Карринг. Декораторы.
    • Практика
  • Практика программирования
    • Стандарты написания кода
    • Основы тестирования*
    • Аннотации типов*
  • Основы алгоритмов
    • Введение
    • Алгоритмы поиска
    • Алгоритмы сортировки
  • Коллекции
    • Введение
    • Кортежи
    • Словари
    • Множества
    • Практика
  • Файлы
    • Введение
    • Работа с файлами в Python
  • Системы контроля версий
    • Введение в Git
  • Проект 1: Десктопное приложение
    • План работы
  • Основы ООП
    • Введение в ООП
  • Последние обновления
  • Обратная связь
    • Связаться с нами
Powered by GitBook
On this page
Edit on GitHub
  1. Строки. Списки

Регулярные выражения (regex)*

  • Это шаблоны соответствия текста, описанные в формальном синтаксисе. Шаблоны интерпретируются как набор инструкций, которые затем выполняются со строкой в ​​качестве входных данных для создания соответствующего подмножества или модифицированной версии оригинала. Регулярные выражения могут включать в себя буквальное сопоставление текста, повторение, ветвление и другие сложные правила. Регулярные выражения обычно используются в приложениях, которые требуют тонкую обработку текста.

  • Инструмент для работы с текстом

  • Позволяют искать, извлекать и манипулировать текстовыми данными на основе заданных шаблонов

  • В Python регулярные выражения реализованы в модуле 're'

Вот несколько основных понятий и примеров использования регулярных выражений:

  1. Символы и метасимволы (символы имеющие специальное значение):

  • .: Соответствует любому символу, кроме новой строки.

  • *: Соответствует нулю или более повторениям предыдущего символа.

  • +: Соответствует одному или более повторениям предыдущего символа.

  • ?: Соответствует нулю или одному повторению предыдущего символа.

  • []: Символьный класс, соответствует любому из перечисленных символов. Например, [aeiou] соответствует любой гласной букве.

  • [^]: Инвертированный символьный класс, соответствует любому символу, который не находится в перечисленных скобках.

  • |: ИЛИ, соответствует одному из двух выражений. Например, cat|dog соответствует "cat" или "dog".

  1. Специальные последовательности:

  • \d: Соответствует любой цифре (эквивалентно [0-9]).

  • \D: Соответствует любому символу, который не является цифрой.

  • \w: Соответствует любой букве или цифре (эквивалентно [a-zA-Z0-9]).

  • \W: Соответствует любому символу, который не является буквой или цифрой.

  • \s: Соответствует любому пробельному символу (пробел, табуляция, новая строка).

  • \S: Соответствует любому символу, который не является пробельным.

  1. Группировка и квантификация (поиск последовательностей):

  • (): Группирует выражение.

  • {n}: Соответствует ровно n повторениям предыдущего символа.

  • {n, m}: Соответствует от n до m повторений предыдущего символа.

  • {n,}: Соответствует n или более повторениям предыдущего символа.

  • ^: Соответствует началу строки.

  • $: Соответствует концу строки.


  • Примеры использования:

import re

# Поиск слова в строке
text = "Привет, мир!"
pattern = r"мир"
match = re.search(pattern, text)

if match:
    print("Найдено совпадение:", match.group())
else:
    print("Совпадений не найдено")

# Проверка, является ли строка числом:
text = "12345"
pattern = r"^\d+$"
if re.match(pattern, text):
    print("Строка является числом")
else:
    print("Строка не является числом")

# Разделение строки на слова:
text = "Привет, мир! Как дела?"
words = re.split(r"\W+", text)  # Разделяем по не-буквенным символам
print(words)
# Поиск числа в строке
text = "Ваш заказ №12345 готов."
match = re.search(r'\d+', text)
if match:
    print("Найдено число:", match.group())

# Поиск email-адреса в тексте
text = "Мой email: example@mail.com"
match = re.search(r'\w+@\w+\.\w+', text)
if match:
    print("Найден email:", match.group())

# Разделение строки по запятой и пробелу
text = "apple, banana, cherry"
words = re.split(r',\s*', text)
print("Разделенные слова:", words)

# Замена слова
text = "Интересный интерфейс"
new_text = re.sub(r'интер', 'экстр', text, flags=re.IGNORECASE)
print("Замененный текст:", new_text)

~# Найдено число: 12345
~# Найден email: example@mail.com
~# Разделенные слова: ['apple', 'banana', 'cherry']
~# Замененный текст: экстресный экстрфейс

Практика

  • Повторите примеры из урока, проанализируйте результат

PreviousСтрокиNextСписки

Last updated 1 year ago

Подробнее о регулярных выражениях в Python
Синтаксис регулярных выражений в Python