《oracle正则表达式》摘抄 自理

时间:2021-09-20 04:19:58

select * from t_test_regexp;

A     B

1     AAA
2     bbb
3     !!!
4     !!!
5     吴雁渡
6     12345
7     123AAbb存储@#%!!@#445BBC

1.REGEXP_LIKE:类似于 LIKE 运算符,但执行正则表达式匹配而不是简单的模式匹配

select a.*,a.rowid from t_test_regexp a
where regexp_like(a.b,‘d‘)   (12345,123AAbb存储@#%!!@#445BBC)//
2.REGEXP_INSTR:在给定字符串中搜索某个正则表达式模式,并返回匹配项的位置。

select a.b,REGEXP_INSTR(a.b,‘d‘) from t_test_regexp a;(0,0,0,0,0,1,1)

select a.b,REGEXP_INSTR(a.b,‘d‘,7) from t_test_regexp a;(0,0,0,0,0,0,17)
3.REGEXP_REPLACE:搜索某个正则表达式模式并使用替换字符串替换它

select a.b,REGEXP_REPLACE(a.b,‘d‘,‘靠‘) from t_test_regexp a
where a.a=7                                                                           (靠靠靠AAbb存储@#%!!@#靠靠靠BBC)
4.REGEXP_SUBSTR:在给定字符串中搜索某个正则表达式模式并返回匹配的子字符串

select a.b,REGEXP_SUBSTR(a.b,‘d{2}‘,1,2) from t_test_regexp a
where a.a=7               (44)

----------------------------------字符释义-------------------------------------------

^:匹配一个字符串的开始。如果与“m” 的match_parameter一起使用,则匹配表达式中任何位置的行的开头。
$:匹配字符串的结尾。如果与“m” 的match_parameter一起使用,则匹配表达式中任何位置的行的末尾。
*:匹配零个或多个。
:匹配一个或多个出现。
?:匹配零次或一次出现。
。:匹配任何字符,除了空。
|:用“OR”来指定多个选项。
[]:用于指定一个匹配列表,您尝试匹配列表中的任何一个字符。
[^]:用于指定一个不匹配的列表,您尝试匹配除列表中的字符以外的任何字符。
():用于将表达式分组为一个子表达式。
{M}:匹配m次。
{M,}:至少匹配m次。
{M,N}:至少匹配m次,但不多于n次。
n:n是1到9之间的数字。在遇到 n之前匹配在()内找到的第n个子表达式。
[..]:匹配一个可以多于一个字符的整理元素。
[:]:匹配字符类。
[==]:匹配等价类。
d:匹配一个数字字符。
D:匹配一个非数字字符。
w:匹配包括下划线的任何单词字符。
W:匹配任何非单词字符。
s:匹配任何空白字符,包括空格,制表符,换页符等等。
S:匹配任何非空白字符。
A:在换行符之前匹配字符串的开头或匹配字符串的末尾。
Z:匹配字符串的末尾。
*?:匹配前面的模式零次或多次发生。
?:匹配前面的模式一个或多个事件。
??:匹配前面的模式零次或一次出现。
{N}?:匹配前面的模式n次。
{N,}?:匹配前面的模式至少n次。
{N,M}?:匹配前面的模式至少n次,但不超过m次。