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

如何用正则仅移除SKU开头的两个字母字符,生成唯一SKU列表

问题:处理SKU生成唯一列表

客户的SKU里,开头两个字母用来标识型号变更/更新,我需要生成唯一的SKU列表用于Data Studio仪表盘。样本SKU如下:

NP9151BM01
NL9151BM01
NL6004SL01
NN6004SL01
NP1927YM05
NN1927YM05
NQ1296BM01
NG1296BM01
NQ1044YL04
NN1044YL04
NP9151YM05
9151YM05
1044YL04

需求很明确:只有当SKU开头是两个字母时,才移除这两个字符;如果开头不是两个字母(比如纯数字开头),就保持SKU原样。比如要把NP9151BM01和NL9151BM01处理成同一个SKU,9151YM05则直接保留。

之前找到的正则(?<=^..).*$会一刀切移除所有SKU的开头两个字符,不符合需求,得调整。

解决方案

正则替换方案

用这个正则匹配要移除的开头部分:

^[A-Za-z]{2}

把匹配到的内容替换成空字符串就行。

逻辑说明

  • ^:锚定字符串开头,确保只检查最前面的字符
  • [A-Za-z]{2}:精准匹配连续两个大小写字母,{2}限定了必须是两个字符

这样一来,只有开头是两个字母的SKU会被去掉前两位,其他情况完全保留原SKU。

实际效果验证

  • NP9151BM01 → 匹配NP,替换后得到9151BM01
  • NL9151BM01 → 匹配NL,替换后得到9151BM01(和上面结果一致,实现去重)
  • 9151YM05 → 开头无两个字母,不匹配,保持原样
  • 1044YL04 → 同样不匹配,保留原SKU

捕获组提取方案(可选)

如果是用提取内容的方式而非替换,也可以用这个正则:

^(?:[A-Za-z]{2})?(.*)$

直接提取第一个捕获组的内容即可。这里(?:...)是非捕获组,?表示前面的两个字母是可选的,不管有没有,都能捕获到后面的所有内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 16:01:47