我正在尝试编写一个正则表达式来解析RFC5424日志文件的“结构化数据”部分。我有一个工作正常的正则表达式,但是我看不到为什么它不返回每个key=value
对。
数据的基本格式如下-
[ELEMENT-ID KEY="VALUE"]
可以有多个键/值对,也可以有多个元素。 我正在使用的正则表达式和测试数据如下-
(\[\S+(\s[^=]+="[^"]*")+\])+
[one var="[x] yz" var2="test"] Log Message
基本上,我正在寻找彼此相邻的多个[]
部分。每个部分均包含非空格,后跟一个或多个\sKEY="VALUE"
条目。
运行此命令似乎很好,但是返回的唯一组是完全匹配和最后一对key=value
。据我所知,它必须使用中央捕获组来匹配两个key=value
对,所以我不明白为什么捕获列表中没有同时返回这两个。