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

如何使用正则表达式从日志文件中提取时间戳和snr数值

日志提取正则表达式方案

核心正则

直接使用带捕获组的正则即可同时提取时间戳和snr键值对:
^(\d{2}:\d{2}:\d{2}\.\d{6}).*?(snr=-?\d{1,3}\.\d)

规则说明

  • 第一个捕获组(\d{2}:\d{2}:\d{2}\.\d{6})精准匹配日志开头的时:分:秒.微秒格式时间戳
  • 中间.*?为非贪婪匹配,跳过时间戳和snr字段之间的所有日志内容
  • 第二个捕获组(snr=-?\d{1,3}\.\d)匹配snr键值对:-?兼容正负值,\d{1,3}匹配1-3位整数部分(覆盖-999~999的取值范围),\.\d匹配小数点后1位小数,完全符合要求的snr格式

常用工具使用示例

1. Linux命令行(GNU Grep)

执行以下命令直接输出你需要的格式:

grep -oP '^(\d{2}:\d{2}:\d{2}\.\d{6}).*?(snr=-?\d{1,3}\.\d)' 你的日志文件路径 | sed 's/ .*snr/ snr/'

2. Python代码

import re

# 读取日志内容
with open("你的日志文件路径", "r", encoding="utf-8") as f:
    log = f.read()

pattern = re.compile(r"^(\d{2}:\d{2}:\d{2}\.\d{6}).*?(snr=-?\d{1,3}\.\d)", re.M)
for ts, snr in pattern.findall(log):
    print(f"{ts} {snr}")

输出效果

针对你提供的示例日志,输出结果如下:

04:26:24.664149 snr=13.2
04:26:24.666220 snr=-4.3
04:26:24.667305 snr=15.4

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 11:15:02