Oracle 学习笔记: 正则表达式
数据库内建了符合
标准的正则表达式。熟练使用正则表达式,可以写出简洁,强大的
语句。
正则表达式有几个优点优于常见的 ! 操作符和 "#$、%#$ 及
$&'函数的。这些传统的 函数不便于进行模式匹配。只有 !操
作符通过使用(和)字符匹配,但 ! 不支持表达式的重复、复杂的更替、字
符范围、字符列表和 字符类等等。
元字符(*'+):
, 代码
- . 使表达式定位至一行的开头
/- 0 使表达式定位至一行的末尾
1- 2 匹配 次或更多次
3- 4 匹配 次或 次
5- 6 匹配 次或更多次
7- 89 正好匹配 次
:- 8;9 至少匹配 次
<- 8; 9 至少匹配 次但不超过 次
=- >?+?@ 字母字符 在匹配时是双>>@@
如下所示:
SELECT T.C_CD
FROM TB2_EG099 T WHERE REGEXP_LIKE(T.C_CD,
'^M[[:alpha:]]*L$','c'); [[:alpha:]] 只匹配字符a-z、A-Z
注意:匹配以M开头并且以L结束的字符串,但是如果中间有数字或其它字符
(如 @ # $ % ^ …)就不能匹配了。
如果是SELECT T.C_CD
FROM TB2_EG099 T WHERE REGEXP_LIKE(T.C_CD,
'^M.*L$','c');
.* 就可以匹配以M开头并且以L结束的任何字符串了
- >?A?@ 小写字母字符
- >?B?@ 大写字母字符
/- >?C?@ 数字
1- >?+?@所有字母
3- >?D?@所有的空格字符
5- >?+?@所有的>?B?@>?B?@>?A?@>?C?@字符
7- >?B?@所有标点符号
:- >?C?@所有有效的十六进制字符