Splunk 正则表达式字段提取

Posted

技术标签:

【中文标题】Splunk 正则表达式字段提取【英文标题】:Splunk Regex field extraction 【发布时间】:2018-03-12 13:41:59 【问题描述】:

我想提取字符串的某一部分,例如:

输入

\\host1\teams\team1\bla\bla\bla
\\host1\teams\team2\bla\bla
\\host1\teams\team3\bla
\\host1\teams\team4

输出

team1
team2
team3
team4

我有一个适用于 Regex101.com 的正则表达式,但是,当我将它带到 Splunk 时,它会返回此错误 Regex: missing terminating ] for character class,而我不能。

正则表达式是:

(^\\\\host1\\teams\\)(?P<Team>[^\\]+)

示例数据:

"\\host1\teams\team1","abc123","def678"

更新

regex101 example

【问题讨论】:

【参考方案1】:

Splunk 的rex 命令的一个难题是如何正确转义。看起来 Splunk 将"[^\\]" 解释为"[^\]",因此它认为括号不匹配。尝试使用额外的反斜杠或尝试(^\\\\host1\\teams\\)(?P&lt;Team&gt;[\w]+)

【讨论】:

以上是关于Splunk 正则表达式字段提取的主要内容,如果未能解决你的问题,请参考以下文章

splunk 中的负正则表达式(不使用字段)

Java使用正则表达式提取字段分隔的子字符串

Oracle 使用带有 oracle regexp_substr 的正则表达式提取 json 字段

固定位置和长度字段的正则表达式

sql server中对字段使用正则表达式替换???

jmeter 正则表达式学习