1 regexp_replace
select data, regexp_replace(data,'[0-9]','') dname,
regexp_replace(data,'[^0-9]','') deptno from dept2;
[0-9]代表[0123456789],还可以表示为[[:digit:]]
[^0-9]中多了一个^,这个表示否定的意思,代表[0-9]的外集,也就是除[0123456789]外的所有字符.
这里要注意"^"的位置:在方括号内字符前面表示所有否定;不在方括号内(如直接写成'^hell'),则表示字符串的开始位置.
2 regexp_like
select data from temp where regexp_like(data,'^[0-9a-z-A-Z]+$')
regexp_like(data,'^[0-9a-z-A-Z]+$'):表示包含数字或者小写字母或者大写字母的字符串,这里的"$"表示字符串的结束,
+表示匹配前面的子表达式一次或者多次;
另外还有个'*':表示匹配前面的子表达式零次或者多次
注:regexp_like(data,'A')同like'%A%'
regexp_like(data,'^A')同like'A%'
regexp_like(data,'A$')同like'%A'
regexp_like(data,'^A$')同like'A'