Ребят, привет! Возник вопрос по использованию модуля re в Python. Как корректно использовать метод group и groups, чтобы извлекать нужные группы из строки? Можно ли получить примеры кода, чтобы было наглядно видно, как работают оба метода? Спасибо!
Ребят, привет! Возник вопрос по использованию модуля re в Python. Как корректно использовать метод group и groups, чтобы извлекать нужные группы из строки? Можно ли получить примеры кода, чтобы было наглядно видно, как работают оба метода? Спасибо!
Ждём вас в нашем чате в Телеграмм ==>> @pythoneer_chat
А ТАКЖЕ: Канал о Python, статьи и книги ==>> @pythoneer_ru
Привет! Метод re.group(n) возвращает конкретную группу по индексу n, а re.groups() возвращает все группы в виде кортежа. Вот пример:
Надеюсь, это поможет!Программный код:
import re
pattern = re.compile(r'(\d+)-(\w+)')
match = pattern.match('123-abc')
print(match.group(1)) # Output: '123'
print(match.groups()) # Output: ('123', 'abc')
Да, верно, re.group(n) вытаскивает отдельную группу, а re.groups() - все группы кортежем. Иногда это реально спасает.Сообщение от Голубика
Здарова! Лови пример с несколькими группами:
Программный код:
import re
regex = re.compile(r'(\w+) (\w+)')
match = regex.match('Hello World')
print(match.group(0)) # 'Hello World'
print(match.group(1)) # 'Hello'
print(match.group(2)) # 'World'
print(match.groups()) # ('Hello', 'World')
О, хороший пример для нескольких групп. Далеко на таких примерах видно разницу в методах.Сообщение от Юлия Александровна
Если нужно извлечь сразу несколько групп, лучше использовать groups(). Пример:
Программный код:
import re
s = '2023-10-03'
match = re.match(r'(\d+)-(\d+)-(\d+)', s)
if match:
year, month, day = match.groups()
print(f'Year: {year}, Month: {month}, Day: {day}')
Отлично! Пример с датой прям полезный, особенно если парсишь данные.Сообщение от Валерий
Метод re.groupdict() возвращает словарь с именованными группами. Пример:
Программный код:
import re
pattern = re.compile(r'(?P<year>\d+)-(?P<month>\d+)-(?P<day>\d+)')
match = pattern.match('2022-12-31')
if match:
print(match.groupdict()) # {'year': '2022', 'month': '12', 'day': '31'}
Тема с groupdict() кайфовая, когда много именованных групп.Сообщение от Azht