正则表达式提取数值

时间:2015-01-16 12:23:28

标签: python regex

我有一行python代码来从数据中提取数值:

for line in infile:
    line = line.strip()
    m = re.findall('^[\S*]|[\#*].*([0-9.]+)', line)
    print m

要提取的数据:

Sombry23                        083_13A
# spiserg (>= 20 ma)            80
Anumm Lowess (>= 20 ma)         1971621
# someure                       80
Lomwer Spisers                  147719
Assime Suree                    1971621
Starrduss Murgge                2007491
MR (%)                          41.30
Remanoweq MR (%)                41.30
X90                             69829

预期结果(以制表符分隔):

083_13A 80  1971621 80  147719  1971621 2007491 41.30   41.30   69829

如何修改此代码以获得预期的输出?

2 个答案:

答案 0 :(得分:3)

print '\t'.join([line.strip().split()[-1] for line in infile])

答案 1 :(得分:1)

如果你真的想用正则表达式来做这里的话。

list = []
for line in infile:
    list.append(re.search(r"^.*\s(.+)$",line).group(1))
print "\t".join(list)

虽然amit的回答更清晰