0

我有一个很长的文本文件,其中每一行看起来像/MM0001 (Table(12,))or /MM0015 (Table(11,))。我只想保留 旁边的四位数字/MM。如果不是“table(12,)”部分,我可以去掉所有非数字字符,但我不知道如何只提取四位数字。关于入门的任何建议?

4

4 回答 4

3

如果它正是那种格式,你可以打印出来line[3:7]

于 2012-04-25T20:09:19.890 回答
2
import re
R=re.compile(r'/MM(\d+)')
for line in file:
    L=R.match(line)
    if L:
       print L.group(1)

或者,更简洁地...

lines=[R.match(line).group(1) for line in file]  #works if the lines are guaranteed to start with \MM

这应该只为您提供 a 之后的整数,/MM并且无论整数字符串有多长都应该工作。如果保证它们具有一定的长度,那么您最好使用其他示例之一(不使用正则表达式)。

于 2012-04-25T20:10:42.447 回答
2

您可以逐行解析文本,然后使用每行的第 4 到第 7 个字符。ln[3:7]

于 2012-04-25T20:08:47.760 回答
0

如果每一行都以/MM然后只是浏览文件并打印出来line[3:7]例如

for line in file:
    print line[3:7]
于 2012-04-25T20:07:55.500 回答