Skip to main content
 首页 » 编程设计

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

2025年05月04日24thcjp

我刚刚学习正则表达式,我需要读入一个文本文件并找到数字的每个实例并找到所有数字的总和。

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) 

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

Here is the file .

请您参考如下方法:

您只验证只有一个数字的行,因此由于 if len(working_list) != 1: continue 将跳过包含两个数字的行,这基本上是说“如果这一行中没有一个数字,则跳过”,您的意思可能类似于 if len(working_list) < 1: continue。