You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell含双引号字符串匹配失败,求解决方案

PowerShell匹配含转义双引号字符串的解决方法

问题根源

你代码里的"是HTML实体转义的双引号,在PowerShell中直接赋值后会作为普通字符串存在。原代码的字符串拼接方式虽然逻辑没问题,但PowerShell中直接在双引号字符串里嵌入变量的写法更可靠,也能避免拼接时的潜在错误。

可行解决方案

方案1:修正-like的变量嵌入方式

直接在通配符字符串里嵌入变量,替代手动拼接:

$inputStr = '{"to":"[Email]","from":"no-reply@email.com","cc":"","bc":""'
$emailStr = '"[Email]"'
if ($inputStr -like "*$emailStr*") {
   write-host "exists"
}

方案2:使用正则表达式匹配(更灵活)

如果需要应对更复杂的匹配场景,推荐使用-match运算符:

$inputStr = '{"to":"[Email]","from":"no-reply@email.com","cc":"","bc":""'
# 正则中[和]是特殊字符,需用\转义
if ($inputStr -match '"\[Email\]"') {
   write-host "exists"
}

方案3:若目标是匹配真实双引号(而非")

如果你的原始内容本应是带真实双引号的JSON,只是被转成了HTML实体,可以先替换再匹配:

$inputStr = '{"to":"[Email]","from":"no-reply@email.com","cc":"","bc":""'
# 将HTML转义的双引号替换为真实双引号
$processedStr = $inputStr -replace '"', '"'
$emailStr = '"[Email]"'
if ($processedStr -like "*$emailStr*") {
   write-host "exists"
}

内容的提问来源于stack exchange,提问作者Owais Ahmed

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:16:12