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

正则表达式需求:匹配内容至<message>组直到下一行以时间开头

正则表达式解决方案

最终可用正则

/(?P<time>^\d{2}:\d{2}:\d{2}\.\d{3})\s?(?P<Token>\[T:\d+\])?\s?(?P<event_type>\{\w+:\d+\})?\s?(?P<message>.*(?:\n(?!\d{2}:\d{2}:\d{2}\.\d{3}).*)*)/gm

问题分析与修正说明

  1. 你前三个正则的核心问题:

    • 第一个用(?=\d{2})作为终止断言,会在任意两位数字前停止匹配,导致内容截断且丢失后续行。
    • 第二个和第三个仅能匹配单行内容,未处理跨行的非时间开头行。
  2. 新正则的关键改进:

    • 精准时间匹配:明确限定时间格式为HH:MM:SS.XXX,避免误匹配其他数字开头的内容。
    • 跨行消息捕获:通过(?:\n(?!\d{2}:\d{2}:\d{2}\.\d{3}).*)*匹配所有后续行,只要该行不是以时间格式开头就纳入message分组。其中(?!...)是负向前瞻断言,确保匹配终止于下一个时间行的开头。

匹配验证

针对你提供的示例文本,该正则会准确捕获你标注的5个message分组内容,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 20:15:55