Sublime Text 3:正则表达式替换在代码段中的引号失败

时间:2015-11-16 21:23:12

标签: regex sublimetext2 sublimetext3 sublimetext

我编写了一个用于注释代码的自定义代码段,只要有空格后跟单引号或双引号,其中的正则表达式就会失败:

<snippet>
<content>
<![CDATA[
/*========================${0/./=/g}
  =            $0            =
  ========================${0/./=/g}*/
]]>
</content>
<tabTrigger>comment-block</tabTrigger>
</snippet>

正则表达式的作用是用等号(=)替换输入,使其看起来像一个奇特的注释块。但是每当遇到任何带引号的空格时,它就会停止替换文本并中断注释块。

通过加载代码段,输入comment-block并点击Tab,然后输入“This is a'comment block”来自行尝试。它会在遇到单引号时中断。

如何才能正确转义'"以使其发挥作用?在.之前添加反斜杠。

1 个答案:

答案 0 :(得分:2)

不幸的是我没有解决方案,但最近这只是一个已知的issue,所以它不仅仅是你。似乎如果在替换正则表达式中触发了任何片段(包括自动匹配),则正则表达式就会退出。我使用最新的development build Sublime在OS X 10.10和Ubuntu 15.10上确认了这个问题,所以自从最新的公开测试版发布以来,它还没有修复。

我会继续玩,看看我是否可以提出一个解决方法,但是现在我想我们只需要忍受它。