用于查找行中的数字的正则表达式(Python)

Jes*_*e R 1 python

我只是在学习正则表达式,我需要在文本文件中读取并查找数字的每个实例并找到所有数字的总和.

import re

sum = 0
list_of_numbers = list()
working_file = open("sample.txt", 'r')
for line in working_file:
    line = line.rstrip()
    working_list = re.findall('[0-9]+', line)
    if len(working_list) != 1:
        continue
    print(working_list)
    for number in working_list:
        num = int(number)
        list_of_numbers.append(num)
for number in list_of_numbers:
    sum += number
print(sum)
Run Code Online (Sandbox Code Playgroud)

我把它print(working_list)放在试图调试它,看看是否所有数字都被正确找到,我已经看到,通过手动扫描文本文件,一些数字被跳过,而其他数字没有.我很困惑为什么因为我认为我的正则表达式保证任何具有任何数字位数的字符串都将被添加到列表中.

这是文件.

Das*_*son 5

你只验证只有一个数字的行,所以会跳过一个有两个数字的行,因为if len(working_list) != 1: continue,基本上说"如果这行上没有一个数字,那么就跳过",你可能意味着if len(working_list) < 1: continue