如何从re.findall()列表中提取所有字符串以转换为整数?

时间:2015-11-29 21:08:11

标签: python regex

我正在解析一些文本,并尝试从文本中检索所有数字,然后收集它们的总和。我使用了正则表达式re.findall([0-9]+)并成功检索了数字,但是无法将所有检索到的数字转换为整数。下面的代码返回一个不正确的总和,因为它只会添加文本每行中出现的第一个数字。以下是完整的代码。

import re
fname=raw_input('Whats up?')
fh=open(fname, 'r')
y=list()
count=0

    for line in fh:
        y=re.findall('[0-9]+', line)
        inp=list(y)
        if y == []:
            continue
        count=count+int(y[0])
print count

1 个答案:

答案 0 :(得分:1)

它只会因为您的要求而添加每行的第一个数字。我假设你在一行中有多个数字。

y = re.findall(' [0-9] +',line)< - 解析并返回该行中所有数字的列表。

您需要的是另一个循环来总结该列表中的所有值。

替换count = count + int(y [0])

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?your-domain\.com$
RewriteRule ^admin/(.*) http://admin.your-domain.com/$1 [R=301,L]

for yy in y:
    count = count + int(yy)

你应该能够看到正确的总和。