在需要搜索和替换的代码中转义括号(Sublime Text2)

Posted

技术标签:

【中文标题】在需要搜索和替换的代码中转义括号(Sublime Text2)【英文标题】:Escaping parentheses in code that needs to be searched and replaced (Sublime Text2) 【发布时间】:2014-06-26 10:39:09 【问题描述】:

我知道how to search and replace strings with Sublime Text2,但在使用转义字符时不知道。

对于以下 javascript 代码,有人可以告诉我如何在这里转义括号吗?

if(PRODUCTION) console.log("hello world");

var log=function(message)
   if(!PRODUCTION) console.log(message);
;

以下内容不起作用,但似乎接近正确:

找到: if(PRODUCTION) console.log("(\w+)");

替换: log($1);

最终目标是仅在开发环境而非生产环境中进行控制台日志记录。

【问题讨论】:

【参考方案1】:

用反斜杠转义特殊字符:

查找:if\(PRODUCTION\) console.log\((".+?")\);

替换:log($1)

注意\w+ 不会匹配hello world,因为\w 不匹配空格。我已将其更改为 .+?,因此它将匹配任何内容,直到匹配双引号。

【讨论】:

我知道这一点在 OP 的代码中,但可以稍微改进一下,删除引号,以便替换对控制台日志的任何调用:console.log\((.+?)\)(即 console.log(someVar);)

以上是关于在需要搜索和替换的代码中转义括号(Sublime Text2)的主要内容,如果未能解决你的问题,请参考以下文章

string.format格式化字符串中转义大括号“{}”

在 bash 脚本中转义引号和大括号的问题

在正则表达式中转义特殊字符

在 Pig 声明语句中转义括号

如何在XAML中转义大括号

如何在 URI 中转义大括号