我正在尝试编写一个 PowerShell 脚本来更新我的 .nuspec
文件(nuget 依赖)到最新的构建版本。不过,我在使用通配符时遇到了麻烦。
所以我想替换这一行的版本号
<dependency id="MyCompany.Common" version="1.0.0.0" />
到新的版本号,即版本 2.2.2.2
<dependency id="MyCompany.Common" version="2.2.2.2" />
我当前的放置方法如下所示。注意我需要一个通配符,因为我需要替换的解决方案中有多个 nuget 包,所有包都遵循
MyCompany.PackageName
的格式$filecontent -replace 'id="MyCompany.*" version="*"', "$Version" | Out-File $file
但这实际上最终创造了
<dependency 2.2.2.21.0.0.0" />
如何修改我的正则表达式以确保它仅替换版本号组件?
最佳答案
用。。。来代替
$filecontent -replace 'id="MyCompany(.*?)" version=".*?"', "id=`"MyCompany`$1`" version=`"$Version`"" | Out-File $file
关于regex - Powershell 通配符/正则表达式替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42441110/