zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    计数排序
    桶排序
    给定两个数组,这两个数组是排序好的,让你求这两个数组合到一起之后第K大的数。
    leetcode349 python3 112ms 求两个数组的交集
    leetcode852 C++ 20ms 找最高峰 序列先增后减
    leetcode665 C++ 36ms 非递减数列 这题没啥意思
    leetcode414 C++ 4ms 第三大的数字
    C++ 堆排序 以及用堆排序解决topk问题
    leetcode628 python3 124ms 三个数字的最大乘积
    leetcode26 C++ 20ms 删除排序数列中的重复元素
  • 原文地址:https://www.cnblogs.com/db-record/p/11454325.html
Copyright © 2011-2022 走看看