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

Teradata SQL中用REGEXP_SUBSTR匹配非末尾首个数字串的正则问题

问题解答

错误原因

  • 正则末尾多余的斜杠属于无效字符,Teradata 的 REGEXP_SUBSTR 函数不需要为正则参数添加首尾定界符,额外的 / 会导致规则完全匹配不到任何内容
  • 原规则[0-9]+(?!$)逻辑本身没有大问题,但存在极端边界场景的匹配误差,改为正向预查兼容性更好

正确正则写法

使用如下函数调用即可满足需求:
REGEXP_SUBSTR(column, '[0-9]+(?=.)')
其中(?=.)是正向零宽预查,要求匹配到的连续数字后面必须存在至少1个任意字符,也就是确保数字串不会出现在字符串最末尾。

效果验证

  • 输入YEL2X30,返回值为2
  • 输入YEL19XYZ05,返回值为19
  • 输入YELLOW05,无匹配结果返回空值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 15:21:04