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

Oracle SQL如何提取首次出现的两个//之间的字符串

Oracle提取两个//之间子串的正确方法

你原来的正则表达式写错了:[^}]+是匹配除了}之外的所有字符,根本不是你要的“两个//之间的内容”,所以才会返回第一个//之后的所有内容。

要提取首次出现的两个//之间的子串(比如示例里的4),用下面的REGEXP_SUBSTR语句就行:

REGEXP_SUBSTR(your_column, '//\s*([^/]+?)\s*//', 1, 1, NULL, 1)

正则各部分的作用:

  • //:匹配第一个出现的//分隔符
  • \s*:匹配//和目标内容之间可能有的空白字符(适配示例里// 4//这种带空格的情况,可选)
  • ([^/]+?):非贪婪匹配所有不是/的字符,保证只取到下一个//之前的内容,括号标记要提取的捕获组
  • \s*//:匹配内容后面的//分隔符,同样允许中间有空白字符
  • 最后一个参数1:表示提取第一个捕获组的内容

如果你的数据里两个//之间没有空白字符,也可以简化成:

REGEXP_SUBSTR(your_column, '//([^/]+)//', 1, 1, NULL, 1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 19:20:19