【问题标题】:Putting quotes around text: find and replace with regex在文本周围加上引号:用正则表达式查找和替换
【发布时间】:2017-09-05 18:45:59
【问题描述】:

在 Atom 中,我正在处理一个巨大的文本文件,我必须替换任何出现的

.env(bar)

.env('bar')

bar 可以有多个值,使用标准的 Find-Replace 工具。

感谢

,我成功地选择了(查找字段)我想要更改的模式
.env(\(([^\)]+)\))

据报道here

但是我找不到任何合适的正则表达式来填充替换字段以便在引号之间换行,例如这些都不起作用:

.env(\'\(([^\)]+)\)\')
.env('\(([^\)]+)\)')

此外,我怎样才能恢复整个过程(也使用 Find-Replace 正则表达式)?

谢谢!

【问题讨论】:

  • 在替换字段中,您不能使用正则表达式,而是替换字符串,例如引用捕获的组。查找\.env\(([^)]+)\),替换为.env('$1')
  • 您尝试获取.env(bar) 并替换为.env('bar'),对吗?在这一刻你可以找到.env(bar) ?但不能用引号替换bar 的值?这是正确的吗?
  • $1 无法获取捕获组,请查看@revo 评论..
  • @revo 靶心。还找到\.env\(\'([^)]+)\'\) 并替换.env($1) 会恢复整个事情。如果您愿意正确回答问题,我将非常乐意接受。

标签: regex atom-editor


【解决方案1】:

当一个模式匹配时,你不能用正则表达式填充替换字段,因为它根本不起作用。您不能使用正则表达式,但可以使用替换字符串,例如引用最近捕获的组。

  1. 查找:\.env\(([^)]+)\)
  2. 替换为:.env('$1')

$1 表示捕获组#1

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-11
    • 2020-08-09
    相关资源
    最近更新 更多