SELECT REGEXP_REPLACE('LSS12345', '[^0-9]') FROM DUAL

结果:12345

'[^0-9]'中的^表示‘非’上述表达式的含义是“将LSS12345中的非数字替换掉”

SELECT REGEXP_REPLACE('LSS12345', '[^0-9]','*') FROM DUAL

结果:***12345,将非数字替换成*

同样,SELECT REGEXP_REPLACE('LSS12345', '[0-9]','*') FROM DUAL

结果:LSS*****

Decode(sign(length(txt_name)-length(REGEXP_REPLACE(txt_name,'[0-9]'))),1,'P'||lpad(REGEXP_REPLACE(txt_name,'[^0-9]'),4,'0'),txt_name)

05-11 20:54