正则表达式获取时间戳,即使它以换行符开头

时间:2015-01-29 07:35:35

标签: regex logging

我正在尝试使用此正则表达式获取日志条目中的每个时间戳:

/^\d{4}\-\d{2}\-\d{2} \d{2}\:\d{2}\:\d{2}/

但是在此示例中,我无法获得第二个条目。我怀疑是因为第二个有\r\n

YYYY-MM-DD HH:II:SS log message here
  cont.
  cont.

YYYY-MM-DD HH:II:SS log message here

1 个答案:

答案 0 :(得分:0)

这取决于您使用的正则表达式风格,例如,如果它是javascript,您需要提供/gm,即:

  • g - 执行全局匹配
  • m - 执行多行匹配

我会更正你的正则表达式,因为如果无效日期(如2015-32-65)你的匹配。

/^(\d{4})\-(0[1-9]|1[0-2])\-(0[1-9]|[12]\d|30|31)\s(0\d|1\d|2[0-3])(:[0-5]\d){1,2}/gm

您可以在此处查看:https://regex101.com/r/nI3uO6/1