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

如何在Snowflake中编写正则表达式提取字符串内最后一个7位数字

正确实现代码

直接使用以下SQL即可提取字符串中最后一个7位数字:

SELECT REGEXP_SUBSTR('4000400 - Widget Revenue:4000401 - Special Widgets:4000422 - Tiny Special Widgets', '.*(\\d{7})', 1, 1, 'e', 1)

运行后返回结果为4000422,符合需求。

规则说明

  • 正则表达式.*(\d{7})利用贪婪匹配特性,.*会尽可能匹配最长的前缀内容,直到最后一组符合\d{7}(7位连续数字)规则的片段,将其存入捕获组1
  • REGEXP_SUBSTR参数说明:
    • 第3位1:从字符串第1个字符开始匹配
    • 第4位1:返回第1次匹配的结果
    • 第5位'e':开启子匹配组提取模式
    • 第6位1:返回第1个捕获组的内容

原有代码错误原因

原正则\D*\d+\D+(\d+).*仅能匹配到第二组数字,无法定位到最后一组数字,同时没有限制数字长度为7位,也未指定返回捕获组的参数,运行后会返回整个匹配到的字符串而非目标数字片段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:36:02