Dan*_*erZ 0 regex powershell backreference
我正在尝试使用串联后向引用和局部变量的字符串替换模式:
(Get-Content $nuspecPath) | Foreach-Object {$_ -replace "(<version>).+(<\/version>)", "`$1$version`$2"} | Set-Content $nuspecPath
Run Code Online (Sandbox Code Playgroud)
预期的: <version>2.0-preview</version>
实际的: 2.0-preview</version>
但是,如果我在像“ $1 $version$2”这样的变量之间添加空格,我会得到<version> 2.0-preview </version>预期的结果。
想法?
谢谢,丹
嗯,这对我有用,因为您最初在 PowerShell v4 上拥有它。但是当我遇到这样的问题时,我通常用花括号来解决它,例如 ${1}
$version = '2.0-preview'
"<version>1.0.0.0</version>" -replace "(<version>).+(<\/version>)", "`${1}$version`$2"
Run Code Online (Sandbox Code Playgroud)
通过将变量名放在花括号中,PowerShell 可以判断一个变量的结束位置和另一个变量的开始位置。此外,确认您的原始方法确实不适用于我的 PowerShell v3 系统之一。
| 归档时间: |
|
| 查看次数: |
2071 次 |
| 最近记录: |