2017-02-20 78 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+/ { 
    ... 
}