Splunk regex查询不返回任何结果

Splunk regex查询不返回任何结果,regex,splunk,Regex,Splunk,我有一个非常简单的正则表达式: A route named '[a-zA-Z]+' is already in the route collection 我已经在Debuggex上测试了它,它在PCRE下工作: 但当我提供此查询时,它不会在Splunk中返回任何结果: | regex _raw="(?=A route named '[a-zA-Z]+' is already in the route collection)" 根据,我需要对整个表达式进行分组。此外,当我在Splunk中运

我有一个非常简单的正则表达式:

A route named '[a-zA-Z]+' is already in the route collection
我已经在Debuggex上测试了它,它在
PCRE
下工作:

但当我提供此查询时,它不会在Splunk中返回任何结果:

| regex _raw="(?=A route named '[a-zA-Z]+' is already in the route collection)"
根据,我需要对整个表达式进行分组。此外,当我在Splunk中运行此查询时:

A route named is already in the route collection
它确实返回结果,因此数据就在那里


有人能告诉我为什么这在Splunk中不起作用吗?

您不应该使用此前瞻,您只需要一个简单的组:

| regex _raw="(A route named '[a-zA-Z]+' is already in the route collection)"

使用“向前看”,您正在搜索。。。没有什么。但是你的句子后面什么都没有。

好吧,我想出来了。使用
regex
命令进行搜索时,必须在搜索之前提供某种查询,例如:

* | regex _raw="(A route named '[a-zA-Z]+' is already in the route collection)"

请注意开头的
*

Splunk regex命令的整个要点是将某些内容捕获到字段中。您的语法不正确:您没有捕获任何内容。向前看就是这样,向前看

Splunk正则表达式引用:

注意:_raw是默认字段

在您的中,您试图捕获HelloWorld:

名为“HelloWorld”的路由已在路由集合中

您想将HelloWorld保存到某个字段中,对吗

*| rex“命名为”(?[\']+)”是“|搜索路径”=*

所以,这个搜索所做的就是查找日志并提取路由值(如果可用)。以下管道仅对返回提取的路由值的日志进行筛选

只要名称中没有's,就可以将任何语法作为路由名称的一部分


让我知道这是否对您有效。

不幸的是,这仍然没有返回任何结果。我使用的是Splunk 5.0.5;也许我在查询中遗漏了一些奇怪的东西?我遗漏了一些东西。。。您所说的
名为的路由的“数据在这里”已在路由集合查询中。但是这句话里没有具体的路线,对吗?它不能被当前的正则表达式捕获?是的,所以如果我运行一个基本查询,除了路由的名称之外,所有的术语都会被找到,但是正则表达式(即使它工作;通过Debuggex验证)不会在Splunk中拉回任何内容。即使你提供了它。你有一个应该被捕获的路由名称的例子吗?您可以尝试
|regex_raw=“(名为)”的路由)
来检查regex搜索是否有效。您是否尝试了“rex”而不是“regex”?