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

Python正则表达式匹配Avg Time行时无法捕获数值后内容怎么解决?

正则调整方案

调整后的正则写法

你可以使用以下两种正则实现目标匹配需求:

  1. 通用匹配写法(适配中间空格、字符长度不固定的场景)
result = re.compile(r'RESULT: Avg Time:.*?\(\d+\.\d+')
  1. 精准匹配写法(匹配稳定性更高,不会出现误匹配)
result = re.compile(r'RESULT: Avg Time:\s+\d+\.\d+us\s+\(\d+\.\d+')

原正则的问题说明

你原有写法 r'RESULT: Avg Time:.*\(\d*\.\d*' 存在两个可优化点:

  • .* 是贪婪匹配规则,会尽可能向后匹配最长的符合规则的内容,容易出现匹配截断
  • \d* 允许匹配0个数字,边界规则太宽松,在部分场景下会提前终止匹配

另外你需要注意:匹配完成后必须调用 .group() 方法才能拿到完整的匹配结果,直接打印match对象会因为默认输出规则被截断内容,不要把输出截断误以为是匹配不全。

完整测试示例

import re

string = "RESULT: Avg Time:                     53.49402644us (2336.71 MB/s)"
result = re.compile(r'RESULT: Avg Time:.*?\(\d+\.\d+')
result_match = result.search(string)
if result_match:
    print(result_match.group())

运行后输出的结果完全符合你的预期:

RESULT: Avg Time:                     53.49402644us (2336.71

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 06:45:00