正则表达式匹配字符串中的 2 个或多个数字

标签 regex google-sheets google-spreadsheet-api re2

假设我有这样的字符串:

ABC-L-W7P-1423
ABC-L-W7E-87
CH-L-W7-756

我需要在最后获取号码。该数字可能是 2、3 或 4 位数字。但目前我所拥有的是:
=REGEXREPLACE(B2,"[^0-9]","")

这当然也捕获了我不想要的“W7P”中的“7”。
编辑:

我还需要匹配这样的东西:
CH-M-311-MM

所以总是一个 2、3 或 4(或 5)位数字,但我需要排除个位数。

最佳答案

您可以使用 =REGEXEXTRACT\b[0-9]{2,4}\b :

=REGEXEXTRACT(B2, "\b[0-9]{2,4}\b")

regex demo .

详情 :
  • \b - 前导词边界
  • [0-9]{2,4} - 2 到 4 位数字
  • \b - 尾随词边界

  • 如果您的 2-4 位数字总是以 - 开头,你可以使用
    =REGEXREPLACE(B2,"^.*-([0-9]{2,4})\b.*","$1")
    

    this regex demo

    详情 :
  • ^ - 字符串开头
  • .*- - 任何 0+ 个字符直到最后 -紧随其后的是...
  • ([0-9]{2,4}) -(组 1 在替换模式中用 $1 表示) - 2 到 4 位数字
  • \b - 尾随词边界
  • .* - 直到字符串末尾的任何字符。
  • 关于正则表达式匹配字符串中的 2 个或多个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38393339/

    相关文章:

    google-sheets - (Google sheets) 从 url inject 查询并返回多个表

    google-sheets - 如何验证服务帐户以对 GDrive Sheet 支持的 BigQuery 表进行查询?

    google-sheets - 限制谷歌电子表格/表单列表提要的结果集大小

    regex - 在 Excel 单元格中调用正则表达式

    regex - perl 中的 s-/-- 和 s-/\Z-- 是什么意思?

    javascript - 如何使用新的 google identity JS 库来处理工作表?

    javascript - 尝试通过 API 添加到 Google 表格的超链接

    php将字符串匹配到多个关键字数组

    c# - 正则表达式删除某个字符后的所有内容(注释)

    google-apps-script - 设置表格格式并通过电子邮件发送