如何在正则表达式语句中找到 [**] 以便我可以将 multi_line_start_pattern 用于 aws cloudwatch 代理

How to find [**] in a regex statement so I can use multi_line_start_pattern for aws cloudwatch agent

我有一个如下所示的日志流:

[**] [1:10000001:1] ICMP test [**]
[Priority: 0] 
12/12-05:35:39.933931 172.31.12.xxx -> 172.31.2.xxx
ICMP TTL:64 TOS:0x0 ID:375 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:14832   Seq:3927  ECHO

[**] [1:10000001:1] ICMP test [**]
[Priority: 0] 
12/12-05:35:40.933854 172.31.12.106 -> 172.31.2.207
ICMP TTL:64 TOS:0x0 ID:417 IpLen:20 DgmLen:84 DF
Type:8  Code:0  ID:14832   Seq:3928  ECHO

我想使用 cloudwatch 代理从多行事件创建单个事件。

根据文档:

multi_line_start_pattern – Specifies the pattern for identifying the start of a log message. A log message is made of a line that matches the pattern and any following lines that don't match the pattern.
If you omit this field, multi-line mode is disabled, and any line that begins with a non-whitespace character closes the previous log message and starts a new log message.

如何创建一个正则表达式来查找 [**] 是否存在。例如。

"multi_line_start_pattern": "\[\*\*\]\"

对于模式:

[**] ANYTHING [**]

根据我的收集,找到 [**] 的存在就足以找到多行事件的开始。

那么找到 [] 或更好的 [] 任何东西 [**] 的正则表达式模式是什么?我不知道正则表达式

谢谢

试试这个,尽管它可能因您的语言而异。

\[\*\*\].+

试试这个

/^\[\*\*\]([\s\w\[\]\:])*?\[\*\*\]/gm

说明:^ 表示,行必须以以下内容开头。然后 ** 然后一些 space 括号文本,然后再次 **g表示搜索整个文档,m表示多行