我正在尝试使用正则表达式搜索/替换来$foo
用大括号(例如;)封装变量(例如;${foo}
)。我想出了以下正则表达式,但它没有按预期工作:
s/"\([^"]*\)\$\([a-zA-Z0-9:]*\)\([^"]*\)"/"\1\${\2}\3"/g
但是,我对这种模式有一些问题。每个引用的字符串只会执行一种模式。这没关系,因为我可以在文件上多次运行表达式,但它不处理已经封装在大括号中的变量。它只是在他们身上放了第二套牙套。
我现在的想法是\2
去掉大括号,但我认为这不会起作用,因为模式仍然会匹配,并且每个引用的字符串只会执行 1 次替换。我查看了反向引用表达式文档,但无法确定更好的方法。