如何在Oracle方括号之间获得价值

时间:2019-08-13 13:38:59

标签: regex oracle

我有一个字符串 [34567].[56].[1]

我需要输出为

Column A column B column C
34567     56        1
select REGEXP_REPLACE('[34533].[54].[1]' , '[^0-9.\-]+', '') 
from dual;

1 个答案:

答案 0 :(得分:2)

我们可以在此处尝试使用REGEXP_SUBSTR

WITH yourTable AS (
    SELECT '[34567].[56].[1]' AS val FROM dual
)

SELECT
    REGEXP_SUBSTR (val, '[0-9]+', 1, 1) AS A,  -- first occurrence
    REGEXP_SUBSTR (val, '[0-9]+', 1, 2) AS B,  -- second occurrence
    REGEXP_SUBSTR (val, '[0-9]+', 1, 3) AS C   -- third occurrence
FROM yourTable
WHERE
    val LIKE '[%].[%].[%]';

Demo