sql正则提取固定内容
regexp_extract语法:regexp_extract(string subject,string pattern,int index)返回值: string说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。第一参数string subject:要处理的字段第二参数string pattern:需要匹配的正则表达式第三个参数int index:0
regexp_extract
语法: regexp_extract(string subject, string pattern, int index)
返回值: string
说明: 将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。
- 第一参数string subject: 要处理的字段
- 第二参数string pattern: 需要匹配的正则表达式
- 第三个参数int index:
0是显示与之匹配的整个字符串
1 是显示第一个括号里面的
2 是显示第二个括号里面的字段…
使用示例
select
regexp_extract(‘x=a3&x=18abc&x=2&y=3&x=4’,‘x=([0-9]+)([a-z]+)’,0), – x=18abc
regexp_extract(‘x=a3&x=18abc&x=2&y=3&x=4’,‘^x=([a-z]+)([0-9]+)’,0), – x=a3
regexp_extract(‘https://detail.tmall.com/item.htm?spm=608.7065813.ne.1.Ni3rsN&id=522228774076&tracelog=fromnonactive’,‘id=([0-9]+)’,0), – id=522228774076
regexp_extract(‘https://detail.tmall.com/item.htm?spm=608.7065813.ne.1.Ni3rsN&id=522228774076&tracelog=fromnonactive’,‘id=([0-9]+)’,1), – 522228774076
regexp_extract(‘http://a.m.taobao.com/i41915173660.htm’,‘i([0-9]+)’,0), – i41915173660
regexp_extract(‘http://a.m.taobao.com/i41915173660.htm’,‘i([0-9]+)’,1) – 41915173660
select regexp_extract(‘hitdecisiondlist’,‘(i)(.*?)(e)’,0) ;
结果:itde
select regexp_extract(‘hitdecisiondlist’,‘(i)(.*?)(e)’,1) ;
结果:i
select regexp_extract(‘hitdecisiondlist’,‘(i)(.*?)(e)’,2) ;
结果:td
select regexp_extract(‘x=a3&x=18abc&x=2&y=3&x=4’,‘x=([0-9]+)([a-z]+)’,2) from default.dual;
结果:abc
提取固定数字
提取没有清洗数值中的数字部分
存在没有清洗的数值value:
1、示例内容:
‘身份证号 : 0123456789876543210,完毕’
由 汉字+标点+数字+标点+汉字 组成
2、我们只想提取其中部分数字内容
select regexp_extract('身份证号 : 0123456789876543210,完毕','.*([0-9]{19}).*',1)
- .* :代表任意多次匹配任意值
- [0-9]:代表从0-9数字中匹配
- {19}:代表匹配19次
返回:
0123456789876543210
提取手机号
select regexp_extract('身份证号 : 0123456789876543210,完毕,手机号:13012341234','.*([1][35678][0-9]{9}).*$',1)
- 手机号是规则的,11位,并且1开头[35678]是第二位
- [35678]:代表手机号的第二位,也可自行修改
- [0-9]:代表匹配0-9数字
- {9}:代表剩余的9位数字匹配九次
返回:
13012341234
split_part
select split_part (‘/abc/required_string/2/’, ‘/’, 3)
返回:required string
SUBSTRING_INDEX
select
SUBSTRING_INDEX('#住宿和餐饮业#餐饮业#餐饮#河北省#保定市#雄县', '#', 2),
SUBSTRING_INDEX(SUBSTRING_INDEX('#住宿和餐饮业#餐饮业#餐饮#河北省#保定市#雄县', '#', 2), '#', -1) AS result,
SUBSTRING_INDEX('#住宿和餐饮业#餐饮业#餐饮#河北省#保定市#雄县', '#', 3),
SUBSTRING_INDEX(SUBSTRING_INDEX('#住宿和餐饮业#餐饮业#餐饮#河北省#保定市#雄县', '#',3), '#', -1) AS result2
"_c0" "result" "_c2" "result2"
"#住宿和餐饮业" "住宿和餐饮业" "#住宿和餐饮业#餐饮业" "餐饮业"
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)