用于提取数值的正则表达式

regular expression to extract numerical values

我有 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

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

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

如果您真的想使用正则表达式,这里有一种方法。

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

尽管阿米特的回答更清晰