正则表达式捕获特定键的键值对

时间:2014-10-01 07:40:35

标签: regex splunk

我现在被困在一个正则表达式上好几天了。我需要捕获特定键的键值对的值。我的数据是这样的:

key1 = "value1",
key2 = "value2",
key3 = "value3",
key4 = "value4"

我想捕获key2和key4的值,可以有任意多个键值。它必须作为正则表达式完成,并在一个名为Splunk的工具中使用,该工具不支持/ g修饰符。这是我得到了多远:

(?:(?:key2 = "(.+)")|(?:key4 = "(.+)")) /g

(见http://regex101.com/r/yZ5tR9/1

使用/ g它可以工作并捕获&​​#34; value2"和" value4",就像我想要的那样,但是,如上所述/ g不可用。

如何在没有修饰符的情况下捕获两个k / v对?非常感谢!

1 个答案:

答案 0 :(得分:1)

Here's an update你的正则表达式没有/g修饰符:

(?:(?:key1 = "(.+)")(?:.|\n)*?(?:key3 = "(.+)"))

中央非捕获组仅意味着匹配第一个键/值对与第二个键/值对之间的任何内容,包括换行符