Инструкция Logstash if с примером regex
может кто-нибудь показать мне, что такое if
оператор с регулярным выражением выглядит как в logstash?
мои попытки:
if [fieldname] =~ /^[0-9]*$/
if [fieldname] =~ "^[0-9]*$"
ни один из которых не работает.
что я намерен сделать, это проверить, содержит ли" fieldname " целое число
4 ответов
объединить другие ответы в связный ответ.
ваш первый формат выглядит правильно, но ваше регулярное выражение не делает то, что вы хотите.
/^[0-9]*$/
матчи:
^
: начало строки
[0-9]*
: любая цифра 0 или более раз
$
- конец строки
таким образом, ваше регулярное выражение захватывает строки, состоящие исключительно из цифр. Чтобы соответствовать на поле, просто содержащем одну или несколько цифр где-то попробуйте использовать /[0-9]+/
или /\d+/
которые эквивалентны и каждый соответствует 1 или более цифр независимо от остальной части строки.
в общей сложности вы должны иметь:
if [fieldname] =~ /\d+/ {
# do stuff
}
^
утверждает позицию в начале строки
$
утверждает позицию в конце строки
ваше регулярное выражение просто соответствует числовой строке, а проверка содержит целое число, которое нужно удалить ^
и $
.