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

求正则表达式:将kbt-y102_9999_0001v-s001v转换为N1v-s1v

解决方案:满足需求的正则表达式替换

我来帮你搞定这个字符串转换的正则需求!根据你给出的规则,我们可以用一个精准的正则表达式配合替换逻辑来实现目标。

正则表达式与替换规则

正则匹配模式:

^.*?_9999_0*(\d+[a-zA-Z])-s0*(\d+[a-zA-Z])$

替换字符串:

N$1-s$2

逐部分解释

让我们拆解这个正则的作用,完全对应你的转换规则:

  • ^.*?_:匹配从字符串开头到第一个下划线的所有内容(包括下划线本身),这部分会被直接忽略替换,完美实现“忽略第一个下划线前的所有内容”的要求。
  • 9999:精准匹配固定的四位9,替换时直接换成N。
  • _0*(\d+[a-zA-Z]):匹配下划线开头,后面跟任意多个前导0,然后捕获一个或多个数字+字母的组合(比如_0001v里的1v),用捕获组$1调用这部分内容。
  • -s0*(\d+[a-zA-Z]):匹配-s开头,后面跟任意多个前导0,然后捕获一个或多个数字+字母的组合(比如-s001r里的1r),用捕获组$2调用这部分内容。

测试示例

用你给出的例子验证效果:

  1. 原字符串:kbt-y102_9999_0001v-s001r
    匹配后捕获组$1=1v,$2=1r,替换结果:N1v-s1r
  2. 原字符串:kbt-y102_9999_0002r-s001v
    匹配后捕获组$1=2r,$2=1v,替换结果:N2r-s1v

灵活调整说明

如果你的场景中后缀字母有其他变体(比如大小写混合、多字符后缀),可以把[a-zA-Z]调整为[a-zA-Z]+或者更符合你实际需求的字符范围。这个正则是针对你给出的固定格式设计的,如果原字符串有其他变体,我们可以再针对性调整。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:55:12