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

如何在PowerShell中使用递归正则匹配含嵌套括号的文本块

问题原因

PowerShell 底层依赖 .NET 正则引擎,不支持 PCRE 风格的递归分组语法 (?1),你将其修改为普通反向引用 \1 只能引用已捕获的固定文本,无法实现嵌套括号的递归匹配逻辑,这就是仅能匹配单层括号场景的核心原因。

解决方案

使用 .NET 正则特有的平衡组语法实现嵌套括号的成对匹配,同时开启正则单行模式(让.可以匹配换行符,支持跨多行匹配),正确命令如下:

$results = $myText | Select-String -Pattern '(?s)item\s*\((?>[^()]+|\((?<c>)|\)(?<-c>))*(?(c)(?!))\)' -AllMatches

执行后调用 $results.Matches.Value 即可获取到你预期的两个匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:09:03