Splunk 正则表达式过滤事件仅出现一次特殊字符

问题描述 投票:0回答:1

我想仅搜索具有单个

'/'
的事件。我怎样才能做到这一点。下面是查询的开始

index="association" sourcetype="escaplogs" 

data.val
字段可以有以下类型的值

restV2/138b-68a8-40be-bb03-567d619e/1e46d-a2a2-4ccd-b26d-f41be4edd
restV2/138b-68a8-40be-bb03-567d619e

如何在只有单个

data.val
 的搜索中添加 
'/'

regex splunk splunk-query
1个回答
0
投票

如果您只想要一个

/
那么您只需搜索一个:

| rex "(?<val>^[^/]+/[^/]+$)"

工作原理:

  • (...)
    这是正则表达式
  • ?<val>
    val
    是将要放入的字段的名称
  • ^...$
    这只匹配整个字符串
  • [^/]+
    这将搜索大于没有
    /
  • 的字符数
  • ^[^/]+/[^/]+$
    这将搜索恰好包含一个
    /
  • 的字符串
  • (?<val>^[^/]+/[^/]+$)
    将匹配部分放入名为
    val
  • 的字段中

这是一个随处运行的示例:

| makeresults count=2
| streamstats count 
| eval _raw = case(
  count=1, "restV2/138b-68a8-40be-bb03-567d619e/1e46d-a2a2-4ccd-b26d-f41be4edd", 
  count=2, "restV2/138b-68a8-40be-bb03-567d619e")
| rex "(?<val>^[^/]+/[^/]+$)"
| table _time _raw val
© www.soinside.com 2019 - 2024. All rights reserved.