ORACLE 正则表达式

字符族:

[[:alpha:]] 任何字母。
[[:digit:]] 任何数字。
[[:alnum:]] 任何字母和数字。
[[:space:]] 任何白字符。
[[:upper:]] 任何大写字母。
[[:lower:]] 任何小写字母。
[[:punct:]] 任何标点符号。
[[:xdigit:]] 任何16进制的数字,相当于[0-9a-fA-F]。

后向引用(backreference):

后向引用是一个很有用的特性。它能够把子表达式的匹配部分保存在临时缓冲区中,供以后重用。缓冲区从左至右进行编号,并利用 digit 符号进行访问。子表达式用一组圆括号来显示。利用后向引用可以实现较复杂的替换功能。  
下面的regexp_replace('Steven Chen', '(.*) (.*)', '2, 1')  此函数中,首先在正则表达式函数中,('Steven Chen', '(.*) (.*)', 其中两个圆括号中会匹配出Chen, Steven;再使用"数字“的符号进行引用。
 
例:
select regexp_replace('123.456.789','([[:alnum:]]*).([[:alnum:]]*).([[:alnum:]]*)','1,2,3') from dual;
--123,456,789
 
 
 
 
 
select regexp_replace('123.456.789','([[:alnum:]]*).([[:alnum:]]*).([[:alnum:]]*)','3,2,1') from dual;
--789,456,123
 
 
select regexp_replace('123.456.789','([[:alnum:]]*).([[:alnum:]]*).([[:alnum:]]*)','1') from dual;
--123
原文地址:https://www.cnblogs.com/wolil/p/6780430.html