3

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

A123E
G234W
R3L
H4562T

我很难找到正确的regex模式来按字母和数字分隔每一行。

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

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

这似乎regex是要走的路,但我还是个regex新手。有人可以帮我指出如何做到这一点的正确方向吗?

然后我计划遍历每一行并根据需要使用信息。

4

1 回答 1

10

拆分\d+

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

\d是匹配数字 0 到 9 的字符类,我们希望至少匹配其中的 1 个。通过在 , 周围放置一个捕获组\d+re.split()将在输出中包含匹配项

如果在pattern中使用了捕获括号,那么 pattern 中所有组的文本也会作为结果列表的一部分返回。

演示:

>>> import re
>>> re.split(r'(\d+)', 'A123E')
['A', '123', 'E']
于 2013-02-08T15:41:14.030 回答