【发布时间】:2013-10-21 18:31:33
【问题描述】:
我编写了以下正则表达式,它应该给我在倒数第二个 } 之前的视图中的所有文本:
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
但我想知道是否可能与视图内容的结尾相匹配。
【问题讨论】:
-
$在正则表达式中的意思是“字符串结束”。那么你的观点是字符串的结尾吗? -
我不太了解 Sublime Text 如何实现它的缓冲区。我想我正在寻找的是一个 end of buffer,我认为 end of string 会起作用...
-
如果你想构造一个正则表达式,你需要知道一些你期望的输入。然后你详细说明一个模式。那么你能给我们一些意见吗?另外我似乎不明白你为什么使用
\\}?如果要匹配文字},\}还不够吗? -
@HamZa:我在regexr.com 的链接中提供了一个示例,出于整洁和清晰的原因,我不想弄乱实际问题的主体,因为我的问题 appears 是 Sublime 的 API,而不是实际的正则表达式。上面的正则表达式是python字符串的形式,需要
/符号进行转义。
标签: python regex plugins sublimetext2