Правила парсера журналов Jenkins

Я использую плагин Jenkins Log Parser в качестве пост-сборки шаг для проверки ошибок после сборки

У меня есть все мои правила в файле, и нотация поддерживает встроенное выражение флага регулярного выражения Java:

# list keywords or regex for ERRORS:
error /(?i)error/
error / (?i)error/
error /(?i)error /
error / (?i)error /

error /(?i)error:/
error / (?i)error:/
error /(?i)error: /
error / (?i)error: /

error /Unknown database/
error /Connect failed/
error /(?i)undefined/
error /Call Stack:/



# list keywords or regex for WARNINGS:
warning /(?i)^warning/
warning /(?i)warning/
warning /(?i)warning:/

Моя проблема в том, что я не очень хорошо разбираюсь в выражениях регулярных выражений, и каждый раз, когда он встречает слово, содержащее «ошибку», он вызывает тревогу. Например: T**error** или Biot**error** (и я знаю, что это может быть связано с моими неправильными выражениями, но если я отмечу «Bioterror» или «Terror» как предупреждение, они все равно перезапишутся как ошибки и сработают. будильник).

Мои вопросы:

  1. как правильно исключить определенные слова, определенные мной?

  2. это достижимо? (Я думал, что так работает плагин, так как если я отмечаю нужные слова как предупреждения, он все равно выделяет их как ошибки)


person bob    schedule 11.09.2014    source источник
comment
Если у вас возникли проблемы с регулярным выражением, попробуйте создать выражение на одной из онлайн-страниц регулярных выражений. regex101.com или regexplanet.com/advanced/java/index.html   -  person betontalpfa    schedule 25.01.2017


Ответы (1)


Что вам нужно, так это якорь границы слова, который равен \b в большинстве разновидностей регулярных выражений. Он имеет нулевую ширину, поэтому он не соответствует ни одному символу, а только переключению с символов, отличных от слов, на символы слов.

Таким образом, ваш матч станет:

error /(?i)\berror\b/

Это одно регулярное выражение обрабатывает все случаи, которые вы пытались обрабатывать отдельно: пробел до или после, двоеточие после и т. д.

person Brian Stephens    schedule 11.09.2014
comment
спасибо @Brian, я проверил это, и это работает. Также большое спасибо, что сообщили мне об избыточных выражениях. - person bob; 11.09.2014