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

Oracle SQL提取两个点之间的字符串(包含点)

Oracle SQL提取两点间含点的字符串解决方案

方法一:使用正则表达式函数REGEXP_SUBSTR

这是最简洁的方式,利用正则匹配包含首尾点的中间部分:

SELECT REGEXP_SUBSTR('abc.musadeneme.dce', '\..*\.', 1, 1) AS target_str FROM dual;

正则说明:

  • \.:匹配字符串中的点(正则中点是特殊字符,需用反斜杠转义)
  • .*:匹配两点之间任意长度的任意字符
  • 最后一个\.:匹配结尾的点
    执行后会返回.musadeneme.,也就是你需要的结果。

方法二:使用INSTR+SUBSTR组合(无正则依赖)

如果系统禁用正则或者更倾向于基础字符串函数,可以用位置截取的方式:

SELECT SUBSTR(
    'abc.musadeneme.dce',
    -- 定位第一个点的位置
    INSTR('abc.musadeneme.dce', '.'),
    -- 计算截取长度:第二个点位置 - 第一个点位置 + 1(包含首尾点)
    INSTR('abc.musadeneme.dce', '.', 1, 2) - INSTR('abc.musadeneme.dce', '.') + 1
) AS target_str FROM dual;

逻辑说明:

  1. INSTR('abc.musadeneme.dce', '.')得到第一个点的位置(这里是4)
  2. INSTR('abc.musadeneme.dce', '.', 1, 2)得到第二个点的位置(这里是15)
  3. 截取从位置4开始,长度为15-4+1=12的字符串,正好是.musadeneme.

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 14:30:53