python - 正则表达式 ??? (三个相邻的问号)用于 PyCharm 的代码标签
问题描述
我正在尝试在我的 Python 代码中使用PEP 350 -- Codetags更多。
我的 IDE 是 PyCharm,我目前正在扩展TODO
评论正则表达式。它位于TODO
菜单 ( Preferences > Editor > TODO
) 中。默认的 PyCharm 正则表达式使用 word boundary \b
。
我目前已将其扩展为:\b(todoc*|fixme|caveat|see)\b.*
我一直在使用正则表达式 101,但我一生都找不到捕获以下代码标签的方法:
???
(问题)!!!
(警报)
**编辑:有人在评论中询问我是否想将单词的结尾与特殊字符(例如:)匹配foo!!!
。我不会,通常评论看起来像!!! some information
。
**编辑 2:代码标签后面可以跟一个冒号(例如:TODO:
, CAVEAT:
),因此正则表达式在这方面应该是灵活的。
我试过的
\b(todoc*|fixme|caveat|see|\?\?\?)\b.*
- 还有更多类似的涉及引号和双斜杠的排列,到目前为止都没有奏效
版本
- PyCharm 2020.1 PE
解决方案
\b
您可以使用空白边界并添加|!!!
到交替中,而不是使用单词边界。
(?<!\S)((?:todo[ :]|(?:fixme|caveat|todoc|see|[?]{3}|!!!)(?!\S))).*
在部分,这将匹配
(?<!\S)
左边的空白边界(
捕获组 1(?:
非捕获组todo[ :]
匹配 todo 后跟空格或:
|
或者(?:fixme|caveat|todoc|see|[?]{3}|!!!)(?!\S)
匹配右边的空白边界后面的任何替代项)
关闭非捕获组
)
关闭捕获组.*
匹配除换行符以外的任何字符 0+ 次
推荐阅读
- reactjs - 如何检查给定的字符串是字符串文字类型还是其他字符串值
- java - Completablefuture 在异常时未完成
- rest - 使用 Evo File API 上传文件时出现问题
- python - 使用 pandas groupby 查找列的唯一组合并另存为 df
- azure - Terraform Azure Databricks 提供程序错误
- next.js - next-redux-wrapper(6.0.2) 中的 getServersideProps 不起作用,但 getInitialProps 没问题
- python - VS Code“查找所有引用”不能忽略排除的文件
- javascript - 如何对一组对象进行分组并将其映射到不同的结构?
- r - R 错误中的词云无法放在页面上。它不会被绘制
- subquery - Kusama & Darwinia Network 的 Sbquery 网络专家