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))
我在使用转义字符和使用“+”字符时遇到了困难。
我不断收到有关嵌套量词“+”的错误信息
$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))