偶尔发现 Oracle 中的 Replace 函数有个不足.
如: select replace (upper('Test Regexp'),upper('test'),'hello') from dual 就取不到想要结果 : hello Regexp 而是 hello REGEXP.
若用其正规函数则可实现: select REGEXP_REPLACE ('Test Regexp', 'test', 'hello', 1, 0, 'i') from dual
此外, 正规函数还有好多功能强大灵活的地方,
如:
1) select REGEXP_REPLACE ('as dfg r', ' [ ]*', ' ', 1, 0, 'i') from dual -- 可将连断N个空格置成一个.
2) select '1' from dual where REGEXP_LIKE ('hi sDt,2007 year', '[^[:alpha:]]SDT[^[:alpha:]]','i');
select '1' from dual where REGEXP_LIKE (' hi sDts,2007 year', '[^[:alpha:]]SDT[^[:alpha:]]','i');
-- 查找是否存在指定单词SDT (如果用平时的 like 来实现则语句会很长很长)