正则表达式可解析未捕获所有组的日志数据

时间:2018-12-21 10:53:18

标签: regex

我正在尝试编写一个正则表达式来解析RFC5424日志文件的“结构化数据”部分。我有一个工作正常的正则表达式,但是我看不到为什么它不返回每个key=value对。

数据的基本格式如下-

[ELEMENT-ID KEY="VALUE"]

可以有多个键/值对,也可以有多个元素。 我正在使用的正则表达式和测试数据如下-

(\[\S+(\s[^=]+="[^"]*")+\])+

[one var="[x] yz" var2="test"] Log Message

基本上,我正在寻找彼此相邻的多个[]部分。每个部分均包含非空格,后跟一个或多个\sKEY="VALUE"条目。

运行此命令似乎很好,但是返回的唯一组是完全匹配和最后一对key=value。据我所知,它必须使用中央捕获组来匹配两个key=value对,所以我不明白为什么捕获列表中没有同时返回这两个。

0 个答案:

没有答案