zoukankan      html  css  js  c++  java
  • HIVE常用正则函数(like、rlike、regexp、regexp_replace、regexp_extract)

    Oralce中regex_like和hive的regexp对应

    LIKE

    语法1: A LIKE B
    语法2: LIKE(A, B)
    操作类型: strings
    返回类型: boolean或null
    描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合表达式B的正则语法,则为TRUE;否则为FALSE。B中字符"_"表示任意单个字符,而字符"%"表示任意数量的字符。

    hive> select 'football' like '%ba';
    OK
    false
     
     
    hive> select 'football' like '%ba%';
    OK
    true
     
     
    hive> select 'football' like '__otba%';
    OK
    true
     
     
    hive> select like('football', '__otba%');
    OK
    true

    RLIKE

    语法1: A RLIKE B
    语法2: RLIKE(A, B)
    操作类型: strings
    返回类型: boolean或null
    描述: 如果字符串A或者字符串B为NULL,则返回NULL;如果字符串A符合JAVA正则表达式B的正则语法,则为TRUE;否则为FALSE。

    hive> select 'football' rlike 'ba';
    OK
    true
     
     
    hive> select 'football' rlike '^footba';
    OK
    true
     
     
    hive> select rlike('football', 'ba');
    OK
    true

    Java正则:

    "." 任意单个字符
    "*" 匹配前面的字符0次或多次
    "+" 匹配前面的字符1次或多次
    "?" 匹配前面的字符0次或1次
    "d" 等于 [0-9],使用的时候写成'd'
    "D" 等于 [^0-9],使用的时候写成'D'

    hive> select 'does' rlike 'do(es)?';
    OK
    true
    
    hive> select '\';
    OK
    
    
    hive> select '2314' rlike '\d+';
    OK
    true

    REGEXP

    语法1: A REGEXP B
    语法2: REGEXP(A, B)
    操作类型: strings
    返回类型: boolean或null
    描述: 功能与RLIKE相同
    
    hive> select 'football' regexp 'ba';
    OK
    true
    
    
    hive> select 'football' regexp '^footba';
    OK
    true
    
    
    hive> select regexp('football', 'ba');
    OK
    true
    
    
    语法: regexp_replace(string A, string B, string C)
    操作类型: strings
    返回值: string
    说明: 将字符串A中的符合java正则表达式B的部分替换为C。
    
    hive> select regexp_replace('h234ney', '\d+', 'o');
    OK
    honey

    REGEXP_REPLACE

    语法: regexp_replace(string A, string B, string C)
    操作类型: strings
    返回值: string
    说明: 将字符串A中的符合java正则表达式B的部分替换为C。

    hive> select regexp_replace('h234ney', '\d+', 'o');
    OK
    honey

    REGEXP_EXTRACT

    语法: regexp_extract(string A, string pattern, int index)
    返回值: string
    说明:将字符串A按照pattern正则表达式的规则拆分,返回index指定的字符,index从1开始计。

    hive> select regexp_extract('honeymoon', 'hon(.*?)(moon)', 0);
    OK
    honeymoon
     
     
    hive> select regexp_extract('honeymoon', 'hon(.*?)(moon)', 1);
    OK
    ey
     
     
    hive> select regexp_extract('honeymoon', 'hon(.*?)(moon)', 2);
    OK
    moon
     
  • 相关阅读:
    【C语言疯狂讲义】(三)C语言运算符
    RAII手法封装相互排斥锁
    《Java并发编程实战》第十一章 性能与可伸缩性 读书笔记
    Nginx之红黑树
    我第一家互联网公司产品开发周期
    javascript中的XML
    哈夫曼树
    【HttpClient4.5中文教程】【第一章 :基础】1.1运行请求(二)
    H3C开启Ssh
    H3C创建本地用户
  • 原文地址:https://www.cnblogs.com/fnlingnzb-learner/p/13441653.html
Copyright © 2011-2022 走看看