文章目录
1 概述
1. 作用:处理字符时,很强大
2. 分类:与下列相似,但功能更加强大(‘支持正则表达式’)
(1) regexp_like : 同 like 功能相似(模糊 ‘匹配’)
(2) regexp_instr : 同 instr 功能相似(返回字符所在 ‘下标’)
(3) regexp_substr : 同 substr 功能相似(‘截取’ 字符串)
(4) regexp_replace: 同 replace 功能相似( ‘替换’ 字符串)
– 使用了 ‘正则表达式’ 替代了老的 ‘百分比 %’ 和 ‘通配符 _’
– 上述 四个 函数,正则用法相似,知晓一个,其它皆可参考
2 匹配规则
主要的类型如下:
分组 | 元字符 | 描述 |
---|---|---|
特殊的 | \ | 转义字符。“\n”:换行,"\\n":文本 ‘\n’ |
. | 匹配除转义字符外的 任何单字符 | |
定位元字符 | ^ | 使表达式定位至一行的 开头 |
$ | 使表达式定位至一行的 末尾 | |
量词或重复操作符 | * | 匹配 0 次或多次(任意次数) |
? | 匹配 0 次或 1 次(最多 1 次) | |
+ | 匹配 1 次或多次(至少 1 次) | |
{m} | 正好 匹配 m 次 | |
{m, } | 至少 匹配 m 次 | |
{m, n} | 匹配 m 到 n 次 | |
表达式的替换和分组 | | | 替换,通常和分组操作符 () 一起使用 |
() | 分组,并且 的关系 | |
[char] | 字符列表,或者 的关系 | |
预定义的 posix 字符类 | [:alpah:] | 任何字母 |
[:lower:] | 任何小写字母 | |
[:upper:] | 任何大写字母 | |
[:digit:] | 任何数字,相当于 [0-9] | |
[:xdigit:] | 任何 16 进制的数字,相当于 [0-9a-fA-F] | |
[:alnum:] | 任何字符或数字字符 | |
[:space:] | 空白字符,如:回车符,换行符、竖直制表符和换页符 | |
[:punct:] | 任何标点符号 |
示例:此案例来源于网络,略作修改,挺适合参考的
1. 查询 value 中以 1 开头 60 结尾的记录并且长度是 7 位
select * from table_name where value like '1____60'; -- 4 个 _
select * from table_name where regexp_like(value, '1....60');
2. 查询 value 中以