使用整数作为分隔符拆分字符串

时间:2013-02-08 15:40:38

标签: python regex

我有一个相当长的txt文件,其中填充了格式为{letter}{number}{letter}的字符串。例如,我文件的前几行是:

A123E
G234W
R3L
H4562T

我很难找到正确的regex模式,用alpha和numeric分隔每一行。

例如,在第一行中,我想要一个包含结果的数组:

print first_line[0] // A
print first_line[1] // 123
ptin first_line[2] // E

似乎regex是可行的方式,但我仍然是regex新手。有人可以帮我指出如何做到这一点的正确方向吗?

然后我计划迭代每一行并根据需要使用这些信息。

1 个答案:

答案 0 :(得分:10)

拆分\d+

import re
re.split(r'(\d+)', line)

\d是匹配数字0到9的字符类,我们希望至少匹配其中的1个。通过在\d+re.split() will include the match in the output附近设置一个捕获组:

  

如果在模式中使用捕获括号,则模式中所有组的文本也将作为结果列表的一部分返回。

演示:

>>> import re
>>> re.split(r'(\d+)', 'A123E')
['A', '123', 'E']