我正在尝试使用正则表达式来匹配和替换文件中的文本。我也在使用捕获组。在替换文本中,我使用了我想要扩展的捕获组和其他变量。问题是,当其他变量的值以数字开头时,它们会被扩展,我假设正在尝试扩展为不存在的捕获组。
这是替换前的文字
merchantId="101"
这是替换后的文本,使用 101 作为 Read-Host 命令的输入。
$1101"
并使用它来匹配和替换文本
$merchant = Read-Host 'What merchant would you like to use?'
$configPath = '..\src\config.cfg'
(Get-Content $configPath) | ForEach-Object {
$_ -replace "(merchantId="").*("")\s*$", "`$1$merchant`$2"
}
Merchant 始终是一个数字,因此当用户为商家输入类似 101 的内容时,替换文本看起来好像已扩展到 $1101,因此我假设 powershell 正在寻找当然不存在的第 1101 个捕获的组。
我是 powerhsell 的新手,语法对我来说有点奇怪,不知道该怎么做。