@GEROLD11

Как присвоить переменным значения, полученные из регулярного выражения?

import re

regex = r"[0-9]{,}(?=x)|[-|+][0-9]{1,}"

test_str = "5x^2-5x+4"

matches = re.finditer(regex, test_str, re.MULTILINE)

for matchNum, match in enumerate(matches, start=1):
    
    print ("{match}".format(match = match.group()))
  • Вопрос задан
  • 179 просмотров
Пригласить эксперта
Ответы на вопрос 2
@anerev
Используй тэг для кода!
tup = tuple(map(int, (x.group() for y, x in enumerate(matches) if x.group() != '')))
Ответ написан
Комментировать
Берите в скобки всё, что нужно вытащить по отдельности. Каждая скобка - это "группа", доступ к которой можно получить через match.group().

Для удобства группы можно даже именовать (?P<name>...) и смотреть через match.groupdict().

https://docs.python.org/3/library/re.html

# Тут в выражени "w+ w+" скобками создали две группы
# и добавили группам имена, вставив в начале групп ?P<xxxx>.
>>> m = re.match(r"(?P<first_name>\w+) (?P<last_name>\w+)", "Malcolm Reynolds")
>>> m.groupdict()
{'first_name': 'Malcolm', 'last_name': 'Reynolds'}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы