当前位置: 代码迷 >> Oracle技术 >> 正则函数有关问题
  详细解决方案

正则函数有关问题

热度:82   发布时间:2016-04-24 08:09:49.0
正则函数问题
有一个IP地址, '61.134.1.4',需要转换为 '061.134.001.004',我用oracle的正则替换函数regexp_replace,

  SELECT REGEXP_REPLACE('61.134.1.4',
                        '([[:digit:]]+)',
                        SUBSTR('000' || '\1', -3))
    FROM DUAL

得到的结果为什么是 '061.0134.01.04'?

------解决方案--------------------
引用:
Quote: 引用:

有一个IP地址, '61.134.1.4',需要转换为 '061.134.001.004',我用oracle的正则替换函数regexp_replace,

  SELECT REGEXP_REPLACE('61.134.1.4',
                        '([[:digit:]]+)',
                        SUBSTR('000' 
------解决方案--------------------
 '\1', -3))
    FROM DUAL

得到的结果为什么是 '061.0134.01.04'?

推荐你使用下面表达式
select regexp_replace('0012.0019.00168.0027' ,'([^.]*)([^.]{3})','\2')
from dual;

对不起,复制错sql了。。
select regexp_replace(
regexp_replace('61.134.1.4','([^.]+)','00\1') ,'([^.]*)([^.]{3})','\2')
from dual
  相关解决方案