问题
我有这个字符串:
field1=text, CmdSet=[ CmdAV=first CmdArgAV=second CmdArgAV=third CmdArgAV=fourth ], field2=text
是否可以编写一个正则表达式(一行)来捕获匹配组中的以下内容?
first second third fourth
背景
这是来自 Cisco ACS 设备的系统日志事件。SIEM 解决方案正在接收该事件。这个 SIEM 解决方案允许我们使用正则表达式通过匹配组从日志中“提取”信息。我们通过在输入字段中输入“正则表达式”行来做到这一点。因此,例如,如果我想提取CmdAV
字段的值,我会这样做CmdAV\=(.*?)\sCmdArgAV
,并告诉它使用“匹配组 1”(无论如何这是唯一的组)。但是,我想在我的问题中提取的“信息”分散成一个CmdAV
和几个CmdArgAV
.
大声思考,也许可以编写一个正则表达式来匹配CmdAV=
and之间的所有内容], field=text
,然后“删除” CmdArgAV=
.
这个 SIEM 解决方案的文档指向这一点:http ://docs.oracle.com/javase/tutorial/essential/regex/有关正则表达式的更多信息,所以我猜它使用 Java。