Я пытаюсь понять, как заставить отрицательный взгляд исполниться после серии \s*:?\s*
. Прямо сейчас это приводит к нежелательным совпадениям, поэтому я вынужден использовать \s*:?\s+
, но он не охватывает некоторые случаи, например todo:match
.
Зачем мне это нужно: есть комментарий todoПроверьте это инструмент анализа исходного кода, я хочу запретить использование простых комментариев TODO, но сохранить возможность писать комментарии todo со связанными билетами.
tl; dr: я хочу сделать лучшие примеры несопоставимыми, но соответствовать всемнижние примеры.
со звездой:
без звезды:
Источник: Debuggex Demo
(?ix)(?:fixme|todo)
\s*(?::|-|--)?\s+
(?!(?:(?:https|http):\/\/)?(?:www\.)?jira\.company\.com|\w+-\d+)
Тестовые данные:
TODO: AS-123 no match
todo: as-123 no match
fixme: https://jira.company.com/browse/AS-14965 no match
fixme: https://jira.company.com
fixme as-123 no match
todo:as-123 no match
todo match
todo match
todo:match
todo :match
todo123
todo : match
todo: match
fixme: match
todo: match https://jira.company.com/