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