正则表达式regexp 您所在的位置:网站首页 正则表达式函数regexp 正则表达式regexp

正则表达式regexp

2024-07-16 12:00| 来源: 网络整理| 查看: 265

函数:regexp_extract(str, regexp[, idx]) ----字符串正则表达式解析函数 参数解释: 其中: str是被解析的字符串或字段名

regexp 是正则表达式

idx是返回结果 取表达式的哪一部分 默认值为1。

0表示把整个正则表达式对应的结果全部返回

1表示返回正则表达式中第一个() 对应的结果 以此类推

注意点: 要注意的是idx的数字不能大于表达式中()的个数。

小例子: 1) select regexp_extract(‘hitdecisiondlist’,’(i)(.*?)(e)’,0) ;

得到的结果为:

itde

2) select regexp_extract(‘hitdecisiondlist’,’(i)(.*?)(e)’,1) ;

得到的结果为:

i

3) select regexp_extract(‘hitdecisiondlist’,’(i)(.*?)(e)’,2) ;

得到的结果为:

td

案例场景: 因为项目关键字匹配,需要按业务需求截取字段,故需要用到正则表达式帮忙实现 例如下面的字段:有3部分组成,而我需要的只是前面的2部分,因为数字数量没有规律性,所以需要用正则帮忙截取: 在这里插入图片描述 写入:select regexp_extract(xxx_skuid,’(.-.)-(.)’,1) from table 就可以得到以下只有两部分的字段了, 在这里插入图片描述 不过此时还没有结束,因为字段里面的字符串有的没有‘-’,但是也要返回原来的值,类似这种: 在这里插入图片描述 此时就需要判断字符串中是否含有‘-’了,以下 SELECT regexp_extract(xxx_skuid, case when locate(’-’,xxx_skuid)=0 then '(.)’ else ‘(.)-(.)’ end,1) as a from table 用了一个判断函数locate,可自行百度看下用法。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有