Oracle SQL Regexp_replace匹配

时间:2012-09-25 13:43:58

标签: sql regex oracle replace matching

这是一个我需要完成的时髦匹配。

A5.1.9.11.2

需要成为:

A05.01.09.11.02

DOT部分的数量将从无到有。字母“A”将始终存在并始终为1个字符。

我想使用regexp_replace()函数将其用作排序机制。感谢。

1 个答案:

答案 0 :(得分:3)

Oracle SQL不支持环绕声断言,这对于这种情况很有用:

s/([0-9](?<![0-9]))/0\1/g

您必须至少使用两次替换:

REGEXP_REPLACE(REGEXP_REPLACE(col, '([0-9]+)', '0\1'), '0([0-9]{2})', '\1')