re2:在成对定界符之间提取多个字段

re2: extracting multiple fields between paired delimiters

我有一个日志文件。日志文件中的每一行(或记录)都保留以下格式:

tsB{{2020-08-18 15:02:29,793}}tsE,fnB{{standard_task_runner.py}}fnE,lnB{{53}}lnE,lvlB{{INFO}}lvlE

这是我想要做的:

1] 以时间戳为关键字提取 2020-08-18 15:02:29,793

2] 以模块为关键字提取 standard_task_runner.py

3] 提取 53 以行作为关键字

4] 使用 loglvl 作为键提取 INFO

使用 re2 工具,我该怎么做? 我试过的正则表达式:

"(*tsB{{<timestamp>}}tsE) (*fnA{{<module>}}fnB) (*lnB{{<line>}}lnE) (*lvlB<loglvl>lvlE)"

下面的正则表达式将match

  • 时间戳
  • 脚本名称
  • 日志级别
{{.+?}}

解释

  1. {{}} 匹配文字 {{}}
  2. .+? 将匹配任何字符直到找到 }} 即它会在第一个 }}
  3. 处停止