我正在Coursera中使用正則表達式的Python課程。目的是通過讀取文本和數字文件,提取所有數字並對它們進行求和。對於樣本數據(http://py4e-data.dr-chuck.net/regex_sum_42.txt),我有以下代碼:乾草堆簡化中的數字
import re
handle = open("regex_sum_42.txt")
numlist=list()
for line in handle :
line = line.rstrip()
stuff = re.findall('([0-9.]+)',line)
for element in stuff :
try :
num = int(element)
numlist.append(num)
except :
continue
print(sum(numlist))
由於「東西」名單中還包括空空間(線在沒有數字)和,我想我需要嘗試「」 /用於防止回溯錯誤的行除外。有沒有更簡單的方法來實現這個程序,沒有第二個循環?
你爲什麼加上'。 '如果你想解析整數? –
你也試圖總結浮點數嗎? –
你的正則表達式不正確。您的模式將匹配一個或多個數字零至九個_ **或** _一個或多個小數字符。你可能想要的東西更像這樣:'\ d +(。\ d +)?'。 –