使用Powershell匹配匹配变量

使用Powershell匹配匹配变量,powershell,match,Powershell,Match,我需要解析一些配置文件并找到匹配项。我已将问题简化为这个问题。为什么即使已转义,powershell也不匹配反斜杠?如果我从下面的代码中删除退格,它就会工作 在$a中查找$b: $a="lorum [\test] ipsum" $b="[\test]" ([regex]::Escape($a )) -match ([regex]::Escape($b)) 这是因为你在逃避字符串本身。-match之前的部分应该是普通字符串,而后面的部分需要是正则表达式模式。您的命令实际做的是比较这些字符串(

我需要解析一些配置文件并找到匹配项。我已将问题简化为这个问题。为什么即使已转义,powershell也不匹配反斜杠?如果我从下面的代码中删除退格,它就会工作

在$a中查找$b:

$a="lorum [\test] ipsum"
$b="[\test]" 

([regex]::Escape($a )) -match ([regex]::Escape($b))

这是因为你在逃避字符串本身。
-match
之前的部分应该是普通字符串,而后面的部分需要是正则表达式模式。您的命令实际做的是比较这些字符串(将它们视为普通字符串):

这从来都不是真的。尝试将字符串
$a
与转义模式
$b
匹配:

$a="lorum [\test] ipsum"
$b="[\test]" 

$a -match ([regex]::Escape($b))

这是因为你在逃避字符串本身。
-match
之前的部分应该是普通字符串,而后面的部分需要是正则表达式模式。您的命令实际做的是比较这些字符串(将它们视为普通字符串):

这从来都不是真的。尝试将字符串
$a
与转义模式
$b
匹配:

$a="lorum [\test] ipsum"
$b="[\test]" 

$a -match ([regex]::Escape($b))