使用Powershell匹配匹配变量

时间:2013-05-11 09:33:57

标签: powershell match

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

在$ a中找到$ b:

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

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

1 个答案:

答案 0 :(得分:4)

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

"lorum \[\\test\] ipsum" contains "[\test]"

永远不会这样。尝试将字符串$a与转义模式$b匹配:

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

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