hive正则表达式的用法

regexp_replace用法
1.  截取字符串中的汉字部分:
举个栗子:select regexp_replace('七夕节comming!来啦','([^\\u4E00-\\u9FA5]+)','') from dual;
结果:七夕节来啦

  2.截取字符串中的字母和数字部分:([^xyz] 不匹配这个集合中的任何一个字符)

举个栗子:select regexp_replace('wo爱你123CHINA中国!','([^a-zA-Z0-9]+)','') from dual
结果:wo123CHINA

 3. 指明两项之间的一个选择。例子'([a-z]+|[0-9]+)$'表示所有小写字母或数字组合成的字符串。

栗子:SELECT regexp_replace('七夕节Coming666!','([a-z]+|[A-Z]+|[0-9]+)','') from dual

结果:七夕节!
4. 匹配一个非字数字符(/D 等同于 [^0-9])
举个栗子1:select regexp_replace('我爱你123zhongguo666!','(\\D+)','') from dual
结果:123666

regexp_extract用法(参数3取决于参数2()的数量,从0开始)
5. 截取字符串中的数字部分([xyz] 匹配这个集合中的任何一个字符)(/d 匹配一个字数字符) 
举个栗子:select regexp_extract('七夕节coming666','([0-9]+)',1) from dual
      or select regexp_extract('七夕节coming666','(\\d+)',1) from dual
结果:666
6.截取字符串中的字母部分
举个栗子:select regexp_extract('七夕节Coming666','([a-zA-Z]+)',1) from dual;
结果:Coming
另注意一种方法:(\\W)匹配汉字   (\w) 表示匹配字母、下划线、数字
例如:select regexp_extract('产险一级机构02','(\\W*)(\\w*)',1) from dual  
结果:产险一级机构
例如:select regexp_extract('产险一级机构02','(\\W*)(\\w*)',2) from dual  
结果:02
7 {n} 精确匹配n次 
举栗子1:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',0) from dual
结果:你123zhongguo6
举栗子2:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',1) from dual
结果:你
举栗子3:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',2) from dual
结果:123zhongguo
举栗子4:select regexp_extract('我爱你123zhongguo666!','(你)(.*?)(6)',3) from dual
结果:6
举个栗子2:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',0) from dual 
结果:152天内有67
举个栗子3:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',1) from dual 
结果:152
举个栗子4:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',2) from dual 
结果:天内有
举个栗子5:select regexp_extract('152天内有67天无通话记录','([0-9]+)([^0-9]+)([0-9]+)',3) from dual 
结果:67

转载于:https://www.cnblogs.com/db-record/p/11454325.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值