Hive 正则匹配函数 regexp_extract

本文转载于https://www.cnblogs.com/skyEva/p/5175377.html,感谢作者分享

1。regexp_extract

语法:    regexp_extract(string subject,  string pattern,  int index)

返回值: string

说明:  将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

第一参数:   要处理的字段

第二参数:    需要匹配的正则表达式

第三个参数:

  • 0是显示与之匹配的整个字符串
  • 1 是显示第一个括号里面的
  • 2 是显示第二个括号里面的字段...

 

注意,在有些情况下要使用转义字符(双斜杠了‘\\’)。

举例:
1
2
3
4
5
6
7
8
9
10
11
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
 
from  test.dual;

 

正则匹配字符解释:
  • ^ 表示开头
  • $ 表示结尾
  • . 表示任意字符
  • * 表示任意多个
2。手机号清洗:

 regexp_replace(mobile,'[^0-9]','')    regexp '1[0-9]{10}'  返回true,则为好的手机号。

每天进步一点点
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值