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

PowerShell中-match匹配后$Matches[1]返回空哈希表问题

问题原因及解决办法

核心原因

  1. 换行符匹配不完整:目标字符串中Company Division后是完整的\r\n换行组合,但你的正则用[\r\n]仅匹配其中一个字符,剩下的另一个换行符会被[^\r\n]*的排除规则拦截,导致捕获组无法匹配到有效内容。
  2. 冗余的贪婪匹配:开头的(?s).*属于冗余的贪婪匹配,虽然在当前单一场景下不会直接导致失败,但会增加匹配开销,若字符串中存在多个Company Division,还会意外匹配到最后一个实例,不符合预期。

修正后的正则表达式

直接精准匹配目标换行组合,去掉冗余的开头匹配:

$TextBoxText -match 'Company Division\r\n([^\r\n]*)'

如果需要兼容不同换行格式(比如仅\n的Unix风格换行),可以使用更通用的写法:

$TextBoxText -match 'Company Division\R([^\r\n]*)'

(\R在PowerShell中可匹配任意换行序列,包括\r\n、\n等)

修正后,$Matches[1]即可正确捕获到<my company name>。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 23:27:31