【发布时间】:2018-06-13 14:43:14
【问题描述】:
使用正则表达式将字符串解析为键值对的最佳方法是什么?
示例输入:
application="fre" category="MessagingEvent" messagingEventType="MessageReceived"
预期输出:
application "fre"
Category "MessagingEvent"
messagingEventType "MessageReceived"
我们已经尝试过以下正则表达式及其工作方式。
application=(?<application>(...)*) *category=(?<Category>\S*) *messagingEventType=(?<messagingEventType>\S*)
但是我们想要一个通用的正则表达式,它将样本输入解析为键值对的预期输出?
任何想法或解决方案都会有所帮助。
【问题讨论】:
-
它有是一个正则表达式吗?
-
是的,实际上我们需要它在 fluentd 中解析并作为 Json 发送到弹性搜索。
-
啊好吧,在评论/编辑之前我对
Hash[str.scan(/(\S+)="(\S+)"/)]很满意,但我猜这不是故意的 :) -
感谢@SRack 的回复。如果我们与 ruby 脚本集成。我们将使用您的 sn-p 代码。
标签: json regex parsing fluentd