Powershell 转义字符嵌套量词

Powershell escape character nested quantifier

我在使用转义字符和使用“+”字符时遇到了困难。

我不断收到有关嵌套量词“+”的错误信息

$software= "Notepad++ 7.8.5 (x64)"
if($software-contains "++")
{
$software.Replace("++","\`'+""\`+'") 
}

Get-Content "C:\path\software.log" | Select-String $software

如何消除此错误? 谢谢你的时间。

如果您要查找字符串 verbatim,您可以绕过使用 Select-String-SimpleMatch 开关转义的需要:

Get-Content C:\path\software.log | Select-String $software -SimpleMatch

如果您确实需要 regex 匹配,请使用 [regex]::Escape() 按顺序转义(可能是 部分 的)您的模式让正则表达式引擎逐字处理它:

Get-Content C:\path\software.log | Select-String ([regex]::Escape($software))