2
我需要解析一些配置文件并找到匹配项。我已经简化了这个问题。为什么powershell不会匹配反斜杠,即使它已被转义?如果我从下面的代码中删除退格,它就可以工作。使用Powershell匹配变量匹配
查找$ B $中的一个:
$a="lorum [\test] ipsum"
$b="[\test]"
([regex]::Escape($a)) -match ([regex]::Escape($b))
我需要解析一些配置文件并找到匹配项。我已经简化了这个问题。为什么powershell不会匹配反斜杠,即使它已被转义?如果我从下面的代码中删除退格,它就可以工作。使用Powershell匹配变量匹配
查找$ B $中的一个:
$a="lorum [\test] ipsum"
$b="[\test]"
([regex]::Escape($a)) -match ([regex]::Escape($b))
这是因为你在逃避字符串本身。 -match
之前的部分应该是普通字符串,而后面的部分需要是正则表达式模式。你的命令实际上做的是比较这些字符串(把它们当作普通字符串):
"lorum \[\\test\] ipsum" contains "[\test]"
这是不正确的。尝试将字符串$a
与逃脱图案$b
配对:
$a="lorum [\test] ipsum"
$b="[\test]"
$a -match ([regex]::Escape($b))
完美;谢谢您的帮助。 – 2013-05-11 12:04:25