Работа с регулярными выражениями в Python (библиотека re)

Регулярные выражения (Regular Expressions) — это мощный инструмент для поиска, замены и манипулирования строковыми данными. В Python работа с регулярными выражениями осуществляется через модуль re. Этот модуль предоставляет функции для компиляции регулярных выражений и выполнения операций над ними.

Основные функции модуля re
  1. re.search(): Проверяет наличие совпадения регулярного выражения в строке. Возвращает объект совпадения (match object), если найдено хотя бы одно совпадение, иначе возвращает None.import re text = "The cat is playing with a ball." pattern = r"cat" match = re.search(pattern, text) if match: print("Совпадение найдено:", match.group()) else: print("Совпадение не найдено")
  2. re.match(): Проверяет совпадение регулярного выражения с началом строки. Работает аналогично search(), но ищет совпадение только в начале строки.import re text = "The cat is playing with a ball." pattern = r"The" match = re.match(pattern, text) if match: print("Совпадение найдено:", match.group()) else: print("Совпадение не найдено")
  3. re.findall(): Находит все неперекрывающиеся совпадения шаблона в строке и возвращает их в виде списка.import re text = "The cat is playing with a ball." pattern = r"\w+" matches = re.findall(pattern, text) print(matches) # ['The', 'cat', 'is', 'playing', 'with', 'a', 'ball']
  4. re.sub(): Замещает все совпадения шаблона указанной подстрокой.import re text = "The cat is playing with a ball." pattern = r"cat" replacement = "dog" new_text = re.sub(pattern, replacement, text) print(new_text) # The dog is playing with a ball.
Символы регулярных выражений
  1. . — любой символ.
  2. \d — любая цифра.
  3. \D — любой символ, кроме цифры.
  4. \w — любое слово (буква, цифра или подчеркивание).
  5. \W — любой символ, кроме буквы, цифры или подчеркивания.
  6. ^ — начало строки.
  7. $ — конец строки.
  8. * — ноль или больше повторений предыдущего элемента.
  9. + — одно или больше повторений предыдущего элемента.
  10. ? — ноль или одно повторение предыдущего элемента.
  11. \{m,n\} — от m до n повторений предыдущего элемента.
  12. | — логическое «ИЛИ».
  13. () — группировка элементов.
  14. [] — набор символов.
  15. \b — граница слова.
  16. \B — отсутствие границы слова.

Метод group() в объекте Match, возвращаемом функцией re.search(), извлекает совпавшую часть строки. Давайте разберемся подробнее.

Когда мы используем метод re.search(), он ищет первое совпадение заданного регулярного выражения в строке. Если совпадение найдено, возвращается объект типа Match. Этот объект содержит информацию о найденном совпадении, такую как позиция начала и конца совпадения, сама совпавшая строка и другие данные.

Метод group() используется для извлечения самой совпавшей части строки. Без параметров он возвращает всю совпавшую строку. Если в регулярном выражении используются группы (заключены в круглые скобки), то можно указать номер группы, чтобы извлечь конкретную часть совпадения.

Рассмотрим ваш пример:

import re

text = "The cat is playing with a ball."
pattern = r"cat"

match = re.search(pattern, text)
if match:
    print("Совпадение найдено:", match.group())
else:
    print("Совпадение не найдено")

Здесь регулярное выражение r"cat" ищет подстроку "cat" в строке text. Если совпадение найдено, оно сохраняется в объекте match. Затем вызывается метод match.group(), который возвращает саму совпавшую подстроку — в данном случае "cat".

Таким образом, match.group() возвращает ту часть строки, которая соответствует вашему регулярному выражению.

Источник: https://stepik.org/lesson/1598792/step/8?unit=1620425

Было ли это полезно?

0 / 0