You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中使用正则表达式提取value字段后的数值

可行实现方案

你原有代码的问题有三个:

  • 正则规则只匹配了"value"字符串本身,没有捕获后面跟随的数值
  • re.findall 接收的参数是字符串,不能直接传入文件对象
  • 最后打印的value变量根本没有定义

你要的提取逻辑用下面的代码就能直接跑,10万行文本的处理速度完全够用,不需要逐行手动遍历:

import re

# 读取文件全部内容,根据你文件实际编码改encoding参数即可
with open('filename.txt', 'r', encoding='utf-8') as f:
    file_content = f.read()

# 正则匹配所有value: 后面的数值,自动兼容冒号后多空格、整数/浮点数场景
match_values = re.findall(r'value:\s*(\d+\.?\d*)', file_content)

# 如果需要把提取结果转成浮点数类型,取消注释下面这行即可
# match_values = [float(item) for item in match_values]

print(match_values)

正则规则说明

使用的匹配规则r'value:\s*(\d+\.?\d*)'各部分作用:

  • value::匹配固定前缀文本,定位到目标行的特征字段
  • \s*:匹配冒号后0到多个空白字符,兼容冒号后多打空格、制表符的不规范格式
  • (\d+\.?\d*):捕获组,会被findall直接返回匹配内容,其中\d+匹配整数部分,\.?匹配可选的小数点,\d*匹配小数点后0到多位数字,整数、浮点数都能正常识别
  • 如果你的数值可能包含负数,把规则改成r'value:\s*(-?\d+\.?\d*)'即可,新增的-?用来匹配可选的负号

内容的提问来源于stack exchange,提问作者user17350567

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 16:54:36