正则表达式混合查询

时间:2018-07-05 06:29:24

标签: regex splunk-query

我有一行包含

[India,sn_GB] Welcome : { Name:{Customer1},Place:{Mumbai},}

我要在splunk中sn_GB]之后打印整行,即

Welcome : { Name:{Customer1},Place:{Mumbai},}

我使用以下正则表达式:

(?<=sn_).*?$

但是它与GB]一样与GB] Welcome : { Name:{Customer1},Place:{Mumbai},}一起打印。 在sn_GB一词中,sn_是常数,其余两个字母将有所不同,例如GBLBKBTB

请帮助我纠正正则表达式。

谢谢

2 个答案:

答案 0 :(得分:0)

我现在了解您的问题。 国家/地区代码始终为2个字母。 我会用

(?<=sn_..\]\ ).*$

但您可以使用 (?<=sn_[A-Z]{0,5}\]\ \s*).*?$

(?<=sn_....).*$

是最简单的,因为它会只捕获4个字符,如果国家/地区代码始终为2个字母,然后是一个右方括号和一个空格

答案 1 :(得分:0)

在sn_GB恒定的情况下,这将给出正确的结果。

(?<=sn_GB).*?$

如果GB不是恒定的,则可以进行以下操作:

(?<=sn_...).*?$