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

如何使用正则表达式提取字符串中两组字符间的第一组连续数字

正则调整方案

你原来使用的\d+[0-9]存在两个核心问题:

  • \d本身等价于[0-9],该表达式实际作用是匹配长度≥2的连续数字段,没有限定匹配位置
  • 无位置约束的情况下,字符串中所有符合长度要求的数字段都会被匹配,多段结果拼接后就会出现末尾多余数字的问题

适配需求的正则方案(匹配你的示例规则)

你的需求是提取字符串开头第一个字母后的第一组连续数字,忽略后续所有内容,直接使用带捕获组的正则即可:
^[A-Za-z](\d+)

  • 规则说明:
    • ^ 锚定字符串开头,保证只从字符串起始位置匹配
    • [A-Za-z] 匹配开头的单个字母(如果开头可能有多个连续字母,改成[A-Za-z]+即可)
    • (\d+) 捕获后续的连续数字,遇到非数字字符自动停止,完全忽略后续所有内容
  • 匹配结果取第一个捕获组的内容即可,测试你的示例全部符合要求:
    • 输入M123123123AD123 → 捕获结果123123123
    • 输入M1231231212MN23 → 捕获结果1231231212
    • 输入G12312312312DD → 捕获结果12312312312

如果你的正则引擎支持环视语法,也可以用无捕获组的写法直接匹配目标数字:(?<=^[A-Za-z])\d+,匹配到的结果直接就是需要的数字。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:27:03