带有特殊字符的 Powershell 句柄变量左括号

问题描述

我有一个比较两个变量的脚本,可能会发生一个变量包含左括号而不是右括号,就像示例中那样。然后 System.ArgumentException 发生:“...没有足够的右括号...”

$test1="Testtext"
$test2="Testtext (3x(2x0,25"
if(!($test1 -match $test2)){ "test"}

我该如何处理?

解决方法

-match 执行正则表达式匹配 - 使用 Regex.Escape() 自动转义逐字模式字符串中的任何可转义序列:

$text = 'Text with (parens)'
$pattern = '(par'

if($text -match [regex]::Escape($pattern)){
  "It worked!"
}