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

PowerShell版本范围匹配问题:筛选仅含8.6.22的版本区间

解决方案

要准确筛选出两端均为8.6.22.*格式的版本范围条目,需要验证范围的起始和结束版本都符合要求,而不是仅检查字符串开头。原-like操作符的逻辑无法覆盖这种场景,建议使用正则表达式来精确匹配。

修改后的代码

# 定义匹配两端都是8.6.22.x格式的正则表达式
$versionPattern = '^8\.6\.22\.\d+-8\.6\.22\.\d+$'

if (![string]::IsNullOrEmpty($versions)) {
    Write-Host "Versions range (Manifest):"   
    foreach ($v in $versions) {
        if ($v -notmatch $versionPattern) {
            Write-Host $v -ForegroundColor Red
        }
        else {
            Write-Host $v
        }  
    }
    Write-Host
}

正则表达式说明

  • ^:匹配字符串的起始位置,确保从开头就符合格式
  • 8\.6\.22\.\d+:匹配8.6.22.后接任意位数的数字(覆盖如8.6.22.0、8.6.22.0000这类带前导零的版本)
  • -:匹配版本范围的分隔符
  • $:匹配字符串的结束位置,确保整个范围的两端都符合要求

效果验证

运行修改后的代码后:

  • 符合要求的条目(如8.6.22.607-8.6.22.999、8.6.22.0000-8.6.22.9999)会正常输出
  • 不符合的条目(如8.6.22.0-8.6.24.999、8.6.20.0-8.6.22.999)会被标红显示

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:35:15