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

PowerShell正则:捕获VVVV与EN间带class=Pens的href值

解决PowerShell正则捕获特定href值的问题

问题分析

你需要从长字符串里先定位VVVV到EN的片段,再提取其中**紧跟class=Pens**的href="Value"里的Value。之前的正则没达到预期,核心问题在于:

  • 用Match方法只能获取单次匹配结果,没法捕获多个符合条件的条目
  • 重复捕获组在.NET正则中只会保留最后一次捕获的内容,无法拿到所有目标值

可行解决方案

方案1:分步匹配(清晰易维护)

先提取VVVV到EN之间的核心片段,再在片段内精准匹配目标值:

# 提取VVVV到EN之间的内容
$middleSection = [regex]::Match($Content, '(?s)VVVV(.*?)EN').Groups[1].Value

# 匹配所有带class=Pens的href值
$targetMatches = [regex]::Matches($middleSection, 'href=`"([^`"]*)`".*?class=Pens')

# 提取所有结果
$finalResults = $targetMatches | ForEach-Object { $_.Groups[1].Value }

方案2:一步到位正则(简洁高效)

利用正向预查限定范围,直接匹配所有符合条件的条目:

$targetMatches = [regex]::Matches($Content, '(?s)(?<=VVVV.*?)href=`"([^`"]*)`".*?class=Pens(?=.*?EN)')
$finalResults = $targetMatches | ForEach-Object { $_.Groups[1].Value }

效果验证

针对你给出的示例内容,两种方案都会返回XXXX1和XXXX2,完全符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:12:08