2017-02-20 196 views
6

任何人都可以告诉我什么if声明与正则表达式看起来像logstash?Logstash if语句与正则表达式示例

if [fieldname] =~ /^[0-9]*$/ 

if [fieldname] =~ "^[0-9]*$" 

其工作既不的:

我的尝试。

我打算做的是检查“字段名”包含一个整数

回答

9

要其他答案组合成一个有凝聚力的答案。

你的第一个格式看起来是正确的,但你的正则表达式没有做你想做的。

​​比赛:

^:行

[0-9]*的开头:任何数字0或多次

$:该行的末尾

所以,你的正则表达式捕获线这是专门由数字组成的。要在只包含一个或多个数字的字段上进行匹配,请尝试使用/[0-9]+//\d+/,它们是等效的,每个匹配1个或多个数字,而不考虑行的其余部分。

在总,你应该有:

if [fieldname] =~ /\d+/ { 
    # do stuff 
} 
0

你需要这个表达式(和支架,我认为):

if ([fieldname] =~ /^[0-9]+$/) 
3

^在开始断言位置串

$在字符串的结尾断言位置

你的正则表达式匹配只是麻木的呃字符串,并且检查是否包含整数需要删除^$

3

最简单的方法是检查\d

if [fieldname] =~ /\d+/ { 
    ... 
}