【问题标题】:Removing quotation marks around text in IntelliJ (with Regex?)删除 IntelliJ 中文本周围的引号(使用正则表达式?)
【发布时间】:2017-07-09 18:21:04
【问题描述】:

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

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

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

我已经找到了所有我想用这个正则表达式改变的地方:

'(.+)'\:

现在我想删除这些字符串中的引号。我尝试在“替换为”字段中输入(.+)\:,但没有成功。有什么方法可以用这个工具做我想做的事吗?

【问题讨论】:

  • 使用$1: 替换匹配的字符串。
  • @MohaMad 您的评论解决了我的问题。您能否将其发布为答案并详细说明其工作原理?

标签: regex intellij-idea replace language-agnostic


【解决方案1】:

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

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

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

另见Regular Expression Syntax Reference

【讨论】:

    【解决方案2】:

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

    附加词:

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

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

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

    并替换为$2: 以提取“/”之间的字符串。

    【讨论】:

      猜你喜欢
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-13
      • 1970-01-01
      • 1970-01-01
      • 2013-09-08
      • 1970-01-01
      相关资源
      最近更新 更多