Oracle之regexp系列函数详解

195 阅读2分钟

「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战

今日份知识学习

今天我们来学习regexp系列函数,其实就是通过正则来匹配不同的内容,然后做不同的一些操作,文章会通过不同的例子来解释几种regexp函数的使用,下面一起来看看吧。

具体讲解

regexp_count

regexp_count函数,可以计算出内容中某个特定字符出现的次数,比如下面这个SQL:

select regexp_count(name, '张') from user_table where name = '张三';

此SQL所执行的结果是1,因为在其内容中,只存在了一个张字。

此函数我们在日常开发中的使用虽然不是很频繁,但又是比较重要的知识点了。

regexp_replace

regexp_replace函数,从名称上来看,replace替换,regexp_replace替换函数就是有规则的替换,其实我们通过replace函数,或者是translate函数就可以完成替换。

regexp_replace函数相对于其他的替换函数而言,会更灵活,其中传入的参数可以指定一些自定义的规则。

比如下面的示例SQL:

select regexp_replace(name, '\[张]') from user_table where name = '张三'

执行上述SQL的结果就是将张三,更换成了三,因为没有输入第三个参数,此函数就将所匹配的字符直接删掉了。

regexp_like

regexp_like函数,从名称看就知道是模糊查询,在日常开发中最常用的就是用这个函数来替换多个like条件出现的情况。

比如下面这个示例:

select name from user_table where regexp_like(name, '\[张李]')

以上结果会查询出name字段包含张、李的数据。

等于同如下SQL效果:

select name from user_table where name like '%张%' or name like '%李%'

总结

今天学习了regexp系列的函数,大家是否有一些收获呢?尤其是regexp_like,在我们日常开发中使用尤为频繁。

最近开始来学习Oracle数据库的一些知识,其中包含一些函数的使用,或者是特性的介绍讲解等,将会在系列文章内说到。

喜欢的可以关注一下专栏。