我有一个表单
some_text_0 pattern_instance_1 some_text_1 pattern_instance_2 some_text_2 pattern_instance_3 some_text_3 ..
其中每个pattern_instance
是PATTERN
的实例,
我希望将其解压缩为
[pattern_instance_1, some_text_1], [pattern_instance_2, some_text_2], ...
(删除第一个some_text_0
)。
这样做的最佳方式是什么?
作为一个更具体的案例,我试图匹配像
这样的东西 Things I need to buy: 1 banana two apples three pears zero kiwis
到
[1, banana]
,[two, apples]
,..
我已经有正则表达式匹配数字,但它相当复杂。我发现的几个解决方案似乎涉及否定这个正则表达式来对某些文本进行匹配,但我想知道是否会有另一种方式,因为我不确定如何否定我的正则表达式。我也试过玩re.find_all()
,但无法让它发挥作用。
答案 0 :(得分:1)
这就是我接近它的方式......
re.finditer会为您提供MatchObjects列表
每个MatchObject都有start函数,可以为您提供模式的第一个索引。 end()函数是类比的。
然后,唯一剩下的就是建立元组。