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

PowerShell正则解析报Unrecognized grouping construct错误求助

PowerShell查询Windows更新历史正则报错修复

错误根因

  • 正则语法非法:报错位置的split正则.*\((?KB\d{6,7})\)存在不符合.NET正则规则的写法。PowerShell默认使用.NET正则引擎,规则中(?是特殊分组构造的起始标记,后面必须跟随合法的分组类型标识(比如命名捕获<组名>、非捕获分组:、正向断言=等),此处直接在(?后拼接KB属于无法识别的分组构造,直接触发解析错误。
  • 额外脚本笔误:末尾排序命令的属性名书写错误,Sort-Object -Property nInstalledO中nInstalledO应为InstalledOn,否则排序逻辑完全不生效。

修复方法

这段split的原设计逻辑是匹配截断更新标题中KB编号及之前的内容,提取后续的更新名称,只需要删除正则中多余的非法字符?即可,修正后的第9行代码如下:

$Title = ($_.Title -split '.*\((KB\d{6,7})\)')[1]

更稳妥的写法:分支中已经通过-match完成了KB格式校验,匹配成功后可以直接用替换操作实现同样效果,避免split数组索引可能引发的异常:

$Title = $_.Title -replace '^.*?\(KB\d{6,7}\)\s*', ''

同时修正末尾排序的属性名笔误,把:

} | Sort-Object -Descending:$true -Property nInstalledO |             

改成:

} | Sort-Object -Descending:$true -Property InstalledOn |             

修正后脚本就不会抛出正则错误,且排序逻辑正常生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 04:33:26