我只想检索与特定字段的正则表达式匹配的事件。例如,具有ip地址的事件。elastic不支持pcre,所以有没有一种方法可以通过它们支持的正则表达式语法来实现这一点?以下是我发现elastic不支持的正则表达式:https://regex101.com/r/99b6dn/3下面是我尝试使用elastic支持的语法的内容,但它不起作用:
/[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*/
预期结果是 myfield:/<myregex>/ 只返回与正则表达式匹配的日志。
myfield:/<myregex>/
sxpgvts31#
仅非捕获组 (?: ) 在您的模式中,不在支持的正则表达式操作符列表中。尝试:
(?: )
([0-9]{1,3}\.){3}[0-9]{1,3}
查询应该如下所示:
{ "query": { "match": { "path": { "query": "([0-9]{1,3}\.){3}[0-9]{1,3}", "type": "phrase" } } } }
或者更精确的模式
((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)
1条答案
按热度按时间sxpgvts31#
仅非捕获组
(?: )
在您的模式中,不在支持的正则表达式操作符列表中。尝试:查询应该如下所示:
或者更精确的模式