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

如何在BitBucket Pipeline中用正则提取分支名中的工单名称?

从BitBucket Pipeline分支名中提取工单ID的方法

针对你的分支名称格式(如fix/DOM-123-my-ticket-info),可以用以下几种bash实现方式提取DOM-123:

方法1:使用bash正则匹配(推荐)

利用bash内置的正则表达式匹配功能,精准捕获工单ID格式(大写字母+连字符+数字):

- BRANCH_NAME="$(git rev-parse --abbrev-ref HEAD)"
- if [[ $BRANCH_NAME =~ /([A-Z]+-[0-9]+) ]]; then
    TICKET_NAME="${BASH_REMATCH[1]}"
  fi

这种方式灵活性高,只要工单ID是字母-数字的格式就能匹配,不受分支前缀(如fix/、feature/)和后续描述的影响。

方法2:使用sed命令

通过sed的正则替换提取目标内容:

- BRANCH_NAME="$(git rev-parse --abbrev-ref HEAD)"
- TICKET_NAME=$(echo "$BRANCH_NAME" | sed -E 's/.*\/([A-Z]+-[0-9]+)-.*/\1/')

该命令会自动忽略分支前缀,捕获/后符合字母-数字格式的部分,并剔除后续的描述内容。

方法3:使用awk分割拼接

如果工单ID固定是前缀-数字的两段格式,可以通过awk两次分割后拼接:

- BRANCH_NAME="$(git rev-parse --abbrev-ref HEAD)"
- TICKET_NAME=$(echo "$BRANCH_NAME" | awk -F'/' '{print $2}' | awk -F'-' '{print $1"-"$2}')

先按/分割取分支的后半段,再按-分割取前两段拼接成工单ID。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 05:05:26