我需要解析一些配置文件并找到匹配项。我已将问题简化为这样。为什么即使已转义,powershell 也不匹配反斜杠?如果我从下面的代码中删除退格键,它就会起作用。
在$a中查找$b:
$a="lorum [\test] ipsum"
$b="[\test]"
([regex]::Escape($a )) -match ([regex]::Escape($b))
Run Code Online (Sandbox Code Playgroud)
这是因为您正在转义字符串本身。前面的部分-match应该是普通字符串,而后面的部分需要是正则表达式模式。您的命令实际上所做的是比较这些字符串(将它们视为普通字符串):
"lorum \[\\test\] ipsum" contains "[\test]"
Run Code Online (Sandbox Code Playgroud)
这从来都不是真的。尝试将字符串$a与转义模式匹配$b:
$a="lorum [\test] ipsum"
$b="[\test]"
$a -match ([regex]::Escape($b))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |