Python正则表达式多重叠分组

时间:2014-11-23 20:32:02

标签: python regex grouping overlap

a = 'foo<99>bar'
match = re.findall(r'(<\d(\d)>)',a)

## match gives [('<99>', '9')] but I would to have ['<99','9>']

我试图逃避&#39;(&#39;但是,正则表达式引擎将其视为文字&#39;(&#39;

2 个答案:

答案 0 :(得分:1)

如果您希望输出为['<99','9>'],则不需要分组,您可以使用pip:

r'<\d+|\d+>'

答案 1 :(得分:0)

使用此模式

(?=(<\d+>))|(?=(\d>))

Demo