Python3正则表达式实操:提取urantia.txt文本中最大整数的方法
实现方案
核心逻辑
- 用正则表达式匹配文本中所有整数序列,转换为整型后取最大值,同时覆盖常见异常场景
完整代码
import re def find_max_integer(file_path: str) -> int | None: try: # 读取文件内容 with open(file_path, 'r', encoding='utf-8') as f: content = f.read() # 匹配所有整数,如需仅匹配正整数可修改正则为r'\d+' num_str_list = re.findall(r'-?\d+', content) if not num_str_list: print("文本中未检测到任何整数") return None # 转换类型后取最大值 max_num = max(map(int, num_str_list)) return max_num except FileNotFoundError: print(f"错误:未找到路径为 {file_path} 的文件") return None if __name__ == "__main__": target_path = "/users/abyron/resources/urantia.txt" max_integer = find_max_integer(target_path) if max_integer is not None: print(f"文本内数值最大的单个整数为:{max_integer}")
说明
- 正则规则
r'-?\d+'会匹配包含负号在内的所有整数,如果你的需求是仅提取正整数,将正则修改为r'\d+'即可 - 代码默认用utf-8编码读取文件,如果你的文本是其他编码(比如gbk),修改
open函数的encoding参数即可 - 加入了文件不存在、无匹配整数的异常处理,避免程序直接崩溃
内容的提问来源于stack exchange,提问作者Languageenthusiast
相关产品推荐
相关产品推荐

