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

如何用PowerShell正则从Git提交主题提取工作项编号?

解决方案

当然可以,甚至可以跳过中间的替换步骤,直接从原始提交信息提取,效率更高。下面提供两种实现方式:

方式一:直接从原始Git提交信息提取

针对原始的git log输出,匹配两种格式的工作项编号:冒号后跟着的纯数字、#开头的数字串。代码如下:

# $gitHist 是 git log 返回的原始内容
$workItems = $gitHist | Select-String -Pattern '(?:^|:\s)(\d+)|#(\d+)' -AllMatches | ForEach-Object {
    $_.Matches | ForEach-Object {
        # 提取匹配到的数字分组,优先取第一个分组,为空则取第二个
        $_.Groups[1].Value ?? $_.Groups[2].Value
    }
} | Where-Object { $_ }

方式二:从已处理后的$log变量提取

如果要基于你已经处理好的$log内容提取,可根据工作项编号的特征(比如是5位及以上数字,或带#前缀)编写正则:

$workItems = $log | Select-String -Pattern '(?:#)?(\d{5,})' -AllMatches | ForEach-Object {
    $_.Matches.Groups[1].Value
} | Where-Object { $_ }

后续使用

提取完成后,$workItems就是包含所有工作项编号的集合,可直接输出或存入数组:

# 输出所有工作项编号
$workItems

# 存入数组变量备用
$workItemList = @($workItems)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 21:12:40