Регулярные выражения (regex)*
- Это шаблоны соответствия текста, описанные в формальном синтаксисе. Шаблоны интерпретируются как набор инструкций, которые затем выполняются со строкой в качестве входных данных для создания соответствующего подмножества или модифицированной версии оригинала. Регулярные выражения могут включать в себя буквальное сопоставление текста, повторение, ветвление и другие сложные правила. Регулярные выражения обычно используются в приложениях, которые требуют тонкую обработку текста. 
- Инструмент для работы с текстом 
- Позволяют искать, извлекать и манипулировать текстовыми данными на основе заданных шаблонов 
- В Python регулярные выражения реализованы в модуле 're' 
Вот несколько основных понятий и примеров использования регулярных выражений:
- Символы и метасимволы (символы имеющие специальное значение): 
- .: Соответствует любому символу, кроме новой строки.
- *: Соответствует нулю или более повторениям предыдущего символа.
- +: Соответствует одному или более повторениям предыдущего символа.
- ?: Соответствует нулю или одному повторению предыдущего символа.
- []: Символьный класс, соответствует любому из перечисленных символов. Например,- [aeiou]соответствует любой гласной букве.
- [^]: Инвертированный символьный класс, соответствует любому символу, который не находится в перечисленных скобках.
- |: ИЛИ, соответствует одному из двух выражений. Например,- cat|dogсоответствует "cat" или "dog".
- Специальные последовательности: 
- \d: Соответствует любой цифре (эквивалентно- [0-9]).
- \D: Соответствует любому символу, который не является цифрой.
- \w: Соответствует любой букве или цифре (эквивалентно- [a-zA-Z0-9]).
- \W: Соответствует любому символу, который не является буквой или цифрой.
- \s: Соответствует любому пробельному символу (пробел, табуляция, новая строка).
- \S: Соответствует любому символу, который не является пробельным.
- Группировка и квантификация (поиск последовательностей): 
- (): Группирует выражение.
- {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']
~# Замененный текст: экстресный экстрфейсПрактика
- Повторите примеры из урока, проанализируйте результат 
Last updated
