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

如何编写正则表达式提取点或连字符后首次出现的数字?

解决方法

你要的正则表达式可以写成:(?<=[.-])\d+

正则说明:

  • (?<=[.-]):这是正向零宽断言,用来匹配前面是**点(.)或者连字符(-)**的位置,确保提取的数字紧跟在这两个符号之后。
  • \d+:匹配连续的一个或多个数字,正好对应你需要提取的可变数字部分。

匹配验证:

把这个正则用到你的几个示例上,结果完全符合预期:

  • Q29775.3-16-F4 → 提取出 3
  • A12345-03-C1 → 提取出 03
  • B09091-03 → 提取出 03
  • C22221-03D5 → 提取出 03

你之前用的(?<=\-).*?(?=-)之所以不行,是因为它只能匹配两个连字符之间的内容,既没法处理点(.)后面的数字,也没法应对没有后续连字符的情况(比如第三个示例)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:29:55