oracle SQL中的正则表达式 - 返回字符串中的所有数字,逗号分隔

时间:2013-06-25 20:03:06

标签: sql regex oracle

我的输入值类似于:

Value:123 with subvalues:[134,135,136]

我只想从中提取所有数字,如果它们至少由一个非数字字符分隔,则将它们保留为逗号分隔。我现在正在使用它:

regexp_replace(message,  '[^[:digit:]]')

这会拉动数字,但显然甚至无法替换这些数字之间的空格。我怎样才能得到结果:

123,134,135,136

1 个答案:

答案 0 :(得分:2)

select
    regexp_replace(
        regexp_replace(
            'Value:123 with subvalues:[134,135,136]',
            '[^[:digit:]]+', ','),
        '^,+|,+$'
    ) as s
from dual;

<强>结果:

s
---------------
123,134,135,136