正则表达式为??? (三个相邻的问号)用于 PyCharm 的代码标签

Regex for ??? (three adjacent question marks) codetag for use in PyCharm

我正在尝试在我的 Python 代码中更多地利用 PEP 350 -- Codetags

我的 IDE 是 PyCharm,我目前正在扩展 TODO 评论正则表达式。它位于 TODO 菜单 (Preferences > Editor > TODO) 中。默认 PyCharm 正则表达式使用单词边界 \b.

我目前已将其扩展为:\b(todoc*|fixme|caveat|see)\b.*

我一直在使用正则表达式 101,但我一直找不到捕获以下代码标签的方法:

**编辑:有人在评论中问我是否愿意将单词的结尾与特殊字符匹配(例如:foo!!!)。我不会,通常评论看起来像 !!! some information.

**编辑 2:代码标签后面可以跟一个冒号(例如:TODO:CAVEAT:),因此正则表达式在这方面应该是灵活的。


我试过的

Regex for three dots?


版本

尝试(\b(todoc*|fixme|caveat|see)\b|\?\?\?|!!!).*

您可以使用白色space 边界并在交替中添加 |!!! 而不是使用单词边界 \b

(?<!\S)((?:todo[ :]|(?:fixme|caveat|todoc|see|[?]{3}|!!!)(?!\S))).*

部分匹配

  • (?<!\S)白色space边界向左
  • ( 捕获组 1
    • (?: 非捕获组
    • todo[ :] 匹配待办事项后跟 space 或 :
    • |
    • (?:fixme|caveat|todoc|see|[?]{3}|!!!)(?!\S) 匹配任何后跟白色space 右边边界的交替
    • )关闭非捕获组
  • ) 关闭捕获组
  • .* 匹配除换行符以外的任何字符 0+ 次

Regex demo