【问题标题】:Test but not select with regex测试但不使用正则表达式选择
【发布时间】:2016-03-21 20:27:57
【问题描述】:

我正在尝试测试一个表达式,但没有选择它。 我需要在 IDE Pycharm 中选择自定义 TODO。 我想选择其中包含单词to-cleanup 的cmets。

当我执行以下操作时:# \b.*to-cleanup\b.* 它还会选择#。我很确定一定有一种方法可以测试# 的存在,但不能选择它。

我刚刚阅读了 Pycharm Help 的正则表达式文档,所以我不知道该怎么做。任何帮助将不胜感激!

我检查了here,但不明白如何将其放入我需要的内容中。

【问题讨论】:

  • 您可以使用积极的后视:(?<=#) \b.*to-cleanup\b.*
  • 看起来你想看看后面像(?<=#)

标签: regex pycharm


【解决方案1】:

您可以使用积极的向后看:

(?<=#) .*\bto-cleanup\b.*

正则表达式匹配(见demo):

  • (?&lt;=#) - 以 # 符号开头的空格
  • .* - 除了换行符之外,还有 0 个或多个字符,直到最后一个
  • \bto-cleanup\b - 整个词to-cleanup
  • .* - 除换行符以外的 0 个或多个字符(直到行尾)。

此lookbehind 是固定宽度的,仅检查空格是否以# 开头,而# 本身不是匹配的一部分。

lookarounds details at regular-expressions.info

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多