Я думаю, вы хотите это:
import re
pattern = re.compile(r'([+-]?)([0-9]+)([a-z]?)([><]?=?)')
re.findall(pattern, '5x>=7-5y+4z')
>>> [('', '5', 'x', '>='), ('', '7', '', ''), ('-', '5', 'y', ''), ('+', '4', 'z', '')]
Каждый экземпляр регулярного выражения, переданного в re.findall
, помещается в кортеж, который затем дополнительно разбивается на строки, соответствующие каждой из групп в регулярном выражении..
Я взял на себя смелость с интерпретацией фактического регулярного выражения, так как я не уверен, каким будет ожидаемый результат для других случаев (например, будет ли термин 0x
?)