Негодяй регулярное выражение с условием
Я выполнил запрос, используя который я хочу отфильтровать журнал, который имеет время больше 100 или любое число.
2015-09-04 14:31:55.015 INFO : [org.perf4j.TimingLogger:426] - start[1441402314909] time[103] tag[getDetails]
2015-09-04 14:31:56.437 INFO : [org.perf4j.TimingLogger:426] - start[1441402316435] time[12] tag[getDetails]
2015-09-04 14:31:57.654 INFO : [org.perf4j.TimingLogger:426] - start[1441402317653] time[20] tag[getDetails]
2015-09-04 14:31:58.721 INFO : [org.perf4j.TimingLogger:426] - start[1441402318720] time[10] tag[getDetails]
Вот мой отморозок. Это может отфильтровать выходы выше 4 строк из моего журнала, но я не могу поставить условие дальше (больше чем). Пробовал eval, но не смог получить ожидаемый результат.
sourcetype="abc" *|regex _raw=time\[(\d+)\]
1 ответ
Если значение, которое вы хотите отфильтровать, больше или равно 100, проверьте 3 цифры:
sourcetype="abc" *|regex _raw=time\[(\d{3})\]
Таким образом, будут совпадать только значения 100 или выше.
РЕДАКТИРОВАТЬ: Если вы ищете число выше диапазона (например, 60
):
sourcetype="abc" *|regex _raw=time\[([6-9]\d|\d{3,})\]
Для конкретного номера и выше (например, 33+
):
sourcetype="abc" *|regex _raw=time\[(33|[3-9][3-9]|[4-9]\d+|[1-9][0-9]\d+)\]
Чтобы запретить числа с ведущими нулями:
sourcetype="abc" *|regex _raw=time\[(33|[3-9][3-9]|[4-9]\d+|[1-9][0-9]\d+|[1-9]\d{2,})\]