的Regex,在PyCharm中使用?(三个相邻的问号)在PyCharm中使用的代码标签。

问题描述 投票:0回答:1

我正试图利用 PEP 350-编码标签 在我的Python代码中更多。

我的集成开发环境是PyCharm,目前我正在扩展PyCharm中的 TODO comment regex。 它可以在 TODO 菜单(Preferences > Editor > TODO). 默认的PyCharm regex使用的是word boundary(边界)。\b.

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

我一直在玩regex 101,但我一直找不到一种方法来捕获以下代码标签。

  • ??? (问题)
  • !!! (警报)

**编辑:有人在评论中问我是否要在单词的结尾处配上特殊字符(如:)。foo!!!). 我不会这样做,通常评论会是这样的 !!! some information.

**编辑2:代码标签后面可加冒号(例如:......)。TODO:, CAVEAT:),所以regex在这方面应该是灵活的。


我所做的尝试

三点的Regex?

  • \b(todoc*|fixme|caveat|see|\?\?\?)\b.*
  • 还有更多类似的涉及到引号和双斜线的排列组合,目前没有一个成功的案例

版本

  • PyCharm 2020.1 PE
python regex pycharm regex-group
1个回答
1
投票

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


1
投票

不使用词的界限 \b 您可以使用空格界限,并在其中添加 |!!! 到交替。

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

在部分地区,这将与

  • (?<!\S) 左边的空白边界
  • ( 采集组1
    • (?: 非捕获组
    • todo[ :] 匹配todo后的空格或 :
    • |
    • (?:fixme|caveat|todoc|see|[?]{3}|!!!)(?!\S) 匹配任何一个交替,并在右边有一个空白的边界。
    • ) 关闭非捕获组
  • ) 关闭捕获组
  • .* 匹配除换行以外的任何字符0+次。

Regex演示

© www.soinside.com 2019 - 2024. All rights reserved.