我有一个相当长的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
新手。有人可以帮我指出如何做到这一点的正确方向吗?
然后我计划迭代每一行并根据需要使用这些信息。
答案 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']