Oracle 正则表达式详解(regexp_substr、regexp_instr、regexp_replace、regexp_like)

文章目录

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 结尾的记录并且长度是 7select * from table_name where value like '1____60'; -- 4 个 _
select * from table_name where regexp_like(value, '1....60');
2. 查询 value 中以 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值