键值匹配组正则表达式,其中分隔符也可以包含在引号括起来的值中
Key Value Match Group Regex where Delimiters can also be contained in quote-enclosed values
我的任务是针对 key/value 对格式数据集创建正则表达式。正则表达式必须包含两个匹配组,一个用于键,一个用于值。
key/value 对以逗号分隔。我挣扎的地方是,值(即键=值)可以包含逗号。在这种情况下,值用引号引起来或 'text-qualified'.
我无法控制数据的格式。
我很接近,但我的正则表达式在包含逗号的引号括起来的值的情况下失败。
这是我尝试过的方法 (https://regex101.com/r/jkK1fT/2):
([^=]*)=\"?([A-Za-z\d:\-\s\.]*)\"?,
下面是一些示例行:
Date=2017-06-29 03:10:00.850 -700 PDT,host=superrad.host,fooVals="12.0,18.0,24.0,36.0,48.0,54.0",origin_ip="FOO: [33.77.254.23]:39562->[222.11.110.111]",foo=bar
Date=2017-06-11 02:30:03.823 -900 PDT,host=superrad.host,fooVals="0.0,22.0,24.0,3.0,4.0,54.0",origin_ip="FOO: [33.77.254.23]:39562->[333.11.22.28]",foo=baz
如何完成我的正则表达式,以便第二个捕获组('values' 的捕获组)可以提取可选引用的封闭文本,尤其是当它包含逗号时,在本例中是我的分隔符?
满足了我的需求,感谢各位花时间看一看
([^=]*)=[\"\s]?([^\"=]*)[\"]?,
这个怎么样?
([\w_]+)=\"(.+?)\"|([\w:\- \.]+)
([\w_]+)
检索密钥。
\"(.+?)\"
检索由 "
. 括起来的值
[\w:\-\s\.]+
检索除 "
括起来的值以外的值
\s
不仅包含space,还包含换行符。所以我用 </code> 而不是 <code>\s
.
https://regex101.com/r/4jsmYp/2
如果你想为你的数据分隔每一行,你也可以使用([\w_]+)=\"(.+?)\"|[\w:\-\s\.\[\]>]+
。
我的任务是针对 key/value 对格式数据集创建正则表达式。正则表达式必须包含两个匹配组,一个用于键,一个用于值。
key/value 对以逗号分隔。我挣扎的地方是,值(即键=值)可以包含逗号。在这种情况下,值用引号引起来或 'text-qualified'.
我无法控制数据的格式。
我很接近,但我的正则表达式在包含逗号的引号括起来的值的情况下失败。
这是我尝试过的方法 (https://regex101.com/r/jkK1fT/2):
([^=]*)=\"?([A-Za-z\d:\-\s\.]*)\"?,
下面是一些示例行:
Date=2017-06-29 03:10:00.850 -700 PDT,host=superrad.host,fooVals="12.0,18.0,24.0,36.0,48.0,54.0",origin_ip="FOO: [33.77.254.23]:39562->[222.11.110.111]",foo=bar
Date=2017-06-11 02:30:03.823 -900 PDT,host=superrad.host,fooVals="0.0,22.0,24.0,3.0,4.0,54.0",origin_ip="FOO: [33.77.254.23]:39562->[333.11.22.28]",foo=baz
如何完成我的正则表达式,以便第二个捕获组('values' 的捕获组)可以提取可选引用的封闭文本,尤其是当它包含逗号时,在本例中是我的分隔符?
满足了我的需求,感谢各位花时间看一看
([^=]*)=[\"\s]?([^\"=]*)[\"]?,
这个怎么样?
([\w_]+)=\"(.+?)\"|([\w:\- \.]+)
([\w_]+)
检索密钥。\"(.+?)\"
检索由"
. 括起来的值
[\w:\-\s\.]+
检索除"
括起来的值以外的值
\s
不仅包含space,还包含换行符。所以我用</code> 而不是 <code>\s
.
https://regex101.com/r/4jsmYp/2
如果你想为你的数据分隔每一行,你也可以使用([\w_]+)=\"(.+?)\"|[\w:\-\s\.\[\]>]+
。