最近才知道,oracle和my sql的正则用法是不一样的,在scott用户做的测试,请看图
select * from DEPT;
SELECT * FROM DEPT A WHERE REGEXP_LIKE(A.DNAME,'^ACC');
––查看字段中以ACC开头的数据
SELECT * FROM DEPT A WHERE REGEXP_LIKE(A.DNAME,'CH$');
––查看字段中以CH结尾的数据
SELECT * FROM DEPT A WHERE REGEXP_LIKE(A.DEPTNO,'[1]');
––查看字段中包含1的数据
––以上仅为我个人测试心得,欢迎各位大神指导,感激不尽 其他用法参照下文:
匹配过程中可能会涉及到的元字符(Meta Character)对应的sql代码:
^ 使表达式定位至一行的开头
$ 使表达式定位至一行的末尾
* 匹配0次或更多次
? 匹配0次或1次
+ 匹配1次或更多次
{m} 正好匹配m次
{m,} 至少匹配m次
{m,n} 至少匹配m次但不超过n次
[:alpha:] 字母字符,匹配字符A-Z、a-z
[:lower:] 小写字母字符,匹配字符a-z
[:upper:] 大写字母字符,匹配字符A-Z
[:digit:] 数字,匹配数字0-9
[:alphanum:] 字母数字字符,匹配字符A-Z、a-z、0-9
[:space:] 空白字符(禁止打印),如回车、换行符、竖直制表符和换页符[:punct:] 标点字符
[:cntrl:] 控制字符(禁止打印)
[:print:] 可打印字符|分隔替换选项,通常与分组符()一期使用
() 将子表达式分组为一个替换单元,量词单元或后向引用单元
[char] 字符列表
. 匹配除null之外的任意单个字符
/ 要匹配的字符是一个特殊字符、常量或者后者引用
x|y 匹配 x 或 y
[abc] 匹配abc中的任何单个字符
[a-z] 匹配 a 到 z 范围内的任意单个字符