删除IntelliJ中的文本引号(使用Regex?)

时间:2017-02-20 12:52:51

标签: regex intellij-idea replace language-agnostic

我有一段代码,我想删除属性名称周围的引号。

// Current format  
var user = {
   'name': 'A',
   'loggedIn': true
}

// Desired format
var user = {
   name: 'A',
   loggedIn: true
}

我设法通过这个正则表达式找到了我想要改变的所有地方:

'(.+)'\:

现在我要删除这些字符串中的引号。我尝试将(.+)\:输入“替换为”字段,但它不起作用。有没有办法做我想用这个工具做的事情?

2 个答案:

答案 0 :(得分:3)

Find in Path documentation解释了如何使用引用:

  • 如果您通过正则表达式指定搜索模式,请在后引用中使用$n格式(以引用以前找到并保存的模式)。

$1将包含括号匹配的内容,因此替换字符串看起来像$1:

另见Regular Expression Syntax Reference

答案 1 :(得分:2)

你的正则表达式与你想要的字符串匹配,但你错过了使用捕获的组! $1返回第一组,第二组和第三组返回$2$3以及....

补充词语:

您可以在查找正则表达式中按\1进行反向引用,以避免重复捕获组代码。

我建议在一般情况下使用此正则表达式而不是您自己的正则表达式:

 ^\s*(['|"])(.*?)\1\s?:

并替换为$2:以在' /"。

之间提取字符串