我试图了解如何在一系列\s*:?\s*. 现在它会导致不需要的匹配,所以我被迫使用\s*:?\s+,但它不包括某些情况,例如todo:match.
为什么我需要这个:有一个待办事项评论检查是源代码分析工具,我想禁止使用普通的待办事项评论,但保留使用链接票编写待办事项评论的能力。
tl;dr:我想让顶级示例无法匹配,但匹配所有底部示例。
来源: Debuggex 演示
(?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/

