正则表达式匹配从Sublime文本“视图”结束开始

时间:2013-10-21 18:31:34

标签: python regex plugins sublimetext2

我编造了下面的正则表达式,它应该在第二个到第二个}之前的视图中给我所有文本:

region = currentView.find("(?<=\\})[^\\}]+\\}[^\\}]*$", 0)

Sublime Text似乎并不认为$表示“视图中的任何内容的结尾”。说实话,我不太明白Sublime Text认为它意味着什么。

我的正则表达似乎有效,如regexr.com上所示。

我找到了一个解决方法,我现在可以忍受我的特殊情况:

regions = currentView.find_all("\}")
    if len(regions) > 1:
        # stuff I am doing with regions[-2] goes here

但我想知道可能是否与视图内容的结尾匹配。

1 个答案:

答案 0 :(得分:8)

正则表达式末尾的

$可以表示行尾或输入的结尾,具体取决于传入的引擎和修饰符标志。快速查看Sublime的doc文档显示它支持\z边界,明确表示“输入缓冲区的结束”。因此,请尝试使用$替换最终的\z,看看是否有帮助。