我有一个文本文件,想要在PowerShell中使用变量内容进行正则表达式/替换。
RewriteEngine on
RewriteBase /Software
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
my.json
$version
version : "something"
替换为变量"something"
的内容 这是我尝试过的。搜索和替换按预期工作,但结果是
$version
。
version : "$version"
答案 0 :(得分:4)
为了能够在替换字符串中使用变量,您需要使用双引号替换字符串,这意味着您需要转义反向引用和嵌套双引号:
(Get-Content my.json) -replace '...', "`$1`"$version`"" | ...
答案 1 :(得分:2)
Ansgar的答案完全有效,但`
转义序列可能很难看,并且会妨碍可读性。
我个人会使用-f
格式运算符来连接'$1'
字符串文字和$version
的值:
(Get-Content my.json) -replace '...',('$1{0}' -f $version)