Regex Splunk-使用点/句点提取字段

Regex Splunk-使用点/句点提取字段,regex,splunk,rex,Regex,Splunk,Rex,似乎无法提取名称中带有的字段 我试图在旧数据上使用字段提取器来创建与新数据JSON字段匹配的字段 { "pirate": { "say ": "Shiver me timbers" } } pirate.say = "Shiver me timbers" 要测试这一点,您可以执行以下操作: | metadata type=hosts index=_internal | head 1 | eval message="Shiver me timbers, goes the pirate" | t

似乎无法提取名称中带有
的字段

我试图在旧数据上使用字段提取器来创建与新数据JSON字段匹配的字段

{ "pirate": { "say ": "Shiver me timbers" } }

pirate.say = "Shiver me timbers"
要测试这一点,您可以执行以下操作:

| metadata type=hosts index=_internal
| head 1
| eval message="Shiver me timbers, goes the pirate"
| table message
| rex field=message "(?<pirate.say>[^,]+)"
|元数据类型=主机索引=_内部
|总目1
|eval message=“吓我一跳,海盗走了”
|表消息
|rex字段=消息“(?[^,]+)”
但我所得到的只是上述“rex”原型和“Field extractions”页面中相同的错误消息

从“雷克斯”原型中,我得到:

“rex”命令中出错:编译正则表达式“(?[^,]+)”时遇到以下错误:正则表达式:子模式名称中的语法错误(缺少终止符)

从'Fields»Field extractions»添加新的'I get:

尝试保存时遇到以下错误:Regex:子模式名称中的语法错误(缺少终止符)


有没有关于如何解决这个问题的想法?

这里有几种不同的情况

首先,不可以,您不能创建一个在被提取的字段名中带有点的正则表达式。(在regex101.com上进行了测试,但不起作用。)

从JSON中提取时,splunk可以创建包含点的字段,表示JSON的层次结构

另一方面,当从正常数据自动提取时,splunk通常会用下划线替换无效字符

要提取JSON,通常使用spath命令

要提取正则表达式,只需给它一个有效的名称,然后重命名以包含点

| makeresults
| eval message="Shiver me timbers, goes the pirate"
| table message
| rex field=message "(?<piratesays>[^,]+)"
| rename piratesays as "pirate.say"

显然,我的问题的答案是否定的。但我认为你的答案非常好,可能会帮助其他人,因此,如果你编辑你的答案并对“字段提取器”部分说“不”,我将接受答案。
| rename piratesays as 'pirate.say'