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

Oracle正则表达式:使用多个分隔符拆分字符串

Oracle按多字符拆分字符串的正确解法

要同时按空格和横杠拆分字符串,你可以调整正则表达式,匹配非空格且非横杠的字符段,结合REGEXP_SUBSTR的参数提取对应位置的内容。

单条提取示例

针对输入字符串'123 456-789',分别提取三个部分的SQL如下:

  • 提取第一个部分:
SELECT regexp_substr('123 456-789', '[^ -]+', 1, 1) FROM dual;

返回结果:123

  • 提取第二个部分:
SELECT regexp_substr('123 456-789', '[^ -]+', 1, 2) FROM dual;

返回结果:456

  • 提取第三个部分:
SELECT regexp_substr('123 456-789', '[^ -]+', 1, 3) FROM dual;

返回结果:789

正则表达式说明

[^ -]+表示匹配一个或多个既不是空格也不是横杠的字符,不管分隔符是空格还是横杠,都能精准定位到每个数字段。

批量拆分所有结果(返回多行)

如果需要一次性返回所有拆分后的结果,可以结合CONNECT BY实现:

SELECT regexp_substr('123 456-789', '[^ -]+', 1, LEVEL) AS split_result
FROM dual
CONNECT BY regexp_substr('123 456-789', '[^ -]+', 1, LEVEL) IS NOT NULL;

执行后会返回三行结果:123、456、789

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 17:12:02