精华内容
下载资源
问答
  • hive 正则表达式详解

    万次阅读 2016-04-09 18:56:22
    对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。1.regexp语法: A REGEXP B 操作类型: strings 描述: 功能与RLIKE相同select count(*) from olap_b_dw_hotelorder_f where create_date_wid ...

    项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
    欢迎大家star,留言,一起学习进步

    hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。

    1.regexp

    语法: A REGEXP B
    操作类型: strings
    描述: 功能与RLIKE相同

    select count(*) from olap_b_dw_hotelorder_f where create_date_wid not regexp '\\d{8}'
    

    与下面查询的效果是等效的:

    select count(*) from olap_b_dw_hotelorder_f where create_date_wid not rlike '\\d{8}';
    

    2.regexp_extract

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

    hive> select regexp_extract('IloveYou','I(.*?)(You)',1) from test1 limit 1;
    Total jobs = 1
    ...
    Total MapReduce CPU Time Spent: 7 seconds 340 msec
    OK
    love
    Time taken: 28.067 seconds, Fetched: 1 row(s)
    
    hive> select regexp_extract('IloveYou','I(.*?)(You)',2) from test1 limit 1;
    Total jobs = 1
    ...
    OK
    You
    Time taken: 26.067 seconds, Fetched: 1 row(s)
    
    hive> select regexp_extract('IloveYou','(I)(.*?)(You)',1) from test1 limit 1;
    Total jobs = 1
    ...
    OK
    I
    Time taken: 26.057 seconds, Fetched: 1 row(s)
    
    hive> select regexp_extract('IloveYou','(I)(.*?)(You)',0) from test1 limit 1;
    Total jobs = 1
    ...
    OK
    IloveYou
    Time taken: 28.06 seconds, Fetched: 1 row(s)
    
    hive> select regexp_replace("IloveYou","You","") from test1 limit 1;
    Total jobs = 1
    ...
    OK
    Ilove
    Time taken: 26.063 seconds, Fetched: 1 row(s)
    

    3.regexp_replace

    语法: regexp_replace(string A, string B, string C)
    返回值: string
    说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。

    hive> select regexp_replace("IloveYou","You","") from test1 limit 1;
    Total jobs = 1
    ...
    OK
    Ilove
    Time taken: 26.063 seconds, Fetched: 1 row(s)
    
    hive> select regexp_replace("IloveYou","You","lili") from test1 limit 1;
    Total jobs = 1
    ...
    OK
    Ilovelili
    

    参考链接:

    1. https://www.iteblog.com/archives/1639.html hive字符串处理函数,比较全
    展开全文
  • Hive正则表达式

    2019-10-03 00:22:54
    正则表达式基本语法 用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。 其中 ?: 是非捕获元之一,还有两...

    正则表达式基本语法

    用圆括号将所有选择项括起来,相邻的选择项之间用|分隔。但用圆括号会有一个副作用,使相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。
    其中 ?: 是非捕获元之一,还有两个非捕获元是 ?= 和 ?!,这两个还有更多的含义,前者为正向预查,在任何开始匹配圆括号内的正则表达式模式的位置来匹配搜索字符串,后者为负向预查,在任何开始不匹配该正则表达式模式的位置来匹配搜索字符串。

    非打印字符

     非打印字符也可以是正则表达式的组成部分。下面列出表示非打印字符的转义序列:

    特殊字符

    所谓特殊字符,就是有一些特殊含义的字符,需要在试图匹配它们时特别对待。若要匹配这些特殊字符,必须首先使字符“转义”。

    限定符

    限定符用来指定正则表达式的一个给定组件必须要出现多少次才能满足匹配。正则表达式的限定符有:

    *,+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。

    定位符

    定位符能够将正则表达式固定到行首或者行尾,还能定位在一个单词内部或者开头或者结尾。正则表达式的定位符有:

     

    转载于:https://www.cnblogs.com/chwilliam85/p/11003476.html

    展开全文
  • hive正则表达式

    2015-07-10 14:43:43
    hive中实现正则表达式,与java中的正则表达式有所区别: 这里经过探索总结了一些: hive中的正则可以用,但是有所区别,区别在于原来的‘\’ 转义,这里变成了双斜杠了‘\\’ hive中的正则解析函数:...

    hive中实现正则表达式,与java中的正则表达式有所区别:

    这里经过探索总结了一些:

    hive中的正则可以用,但是有所区别,区别在于原来的‘\’ 转义,这里变成了双斜杠了‘\\’

    hive中的正则解析函数:regexp_extract;    例如:‘匹配 10.122.248’

    select regexp_extract(host,'(^[\\w]+)\\.([\\w]+)\\.([\\w]+)',0) aa from browsewebpagelog where dt like '20140630%';

    第一参数:要处理的字段,第二参数需要匹配的正则表达式,第三个参数:0是显示与之匹配的整个字符串,1,是显示第一个括号里面的,2是显示第二个括号里面的字段...

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

    返回值: string

    说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。注意,在有些情况下要使用转义字符

    举例:

    hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 1) from dual;

    the

    hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 2) from dual;

    bar

    hive> select regexp_extract(‘foothebar’, ‘foo(.*?)(bar)’, 0) from dual;

    foothebar

    注:有些博客上用 rlike匹配正则,我试过它的含义是只要出现你所制定的正则时,都给你匹配上,你必须添加开始‘^’的符号,否则匹配的结果绝对不是所期望的。

    展开全文
  • 对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。1.regexp语法: A REGEXP B操作类型: strings描述: 功能与RLIKE相同selectcount(*)fromolap_b_dw_hotelorder_fwherecreate_date_widnotregexp'...

    hive中的正则表达式还是很强大的。数据工作者平时也离不开正则表达式。对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。

    1.regexp

    语法: A REGEXP B

    操作类型: strings

    描述: 功能与RLIKE相同

    selectcount(*)fromolap_b_dw_hotelorder_fwherecreate_date_widnotregexp'\\d{8}'

    与下面查询的效果是等效的:

    selectcount(*)fromolap_b_dw_hotelorder_fwherecreate_date_widnotrlike'\\d{8}';

    2.regexp_extract

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

    返回值: string

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

    hive> select regexp_extract('IloveYou','I(.*?)(You)',1) from test1 limit1;

    Total jobs =1

    。。。

    Total MapReduce CPU Time Spent:7seconds340msec

    ok

    love

    Time taken:28.067seconds, Fetched:1row(s)

    hive> select regexp_extract('IloveYou','I(.*?)(You)',2) from test1 limit1;

    You

    hive> select regexp_extract('IloveYou','(I)(.*?)(You)',1) from test1 limit1;

    I

    hive> select regexp_extract('IloveYou','(I)(.*?)(You)',0) from test1 limit1;

    IloveYou

    hive> select regexp_replace("IloveYou","You","") from test1 limit1;

    Ilove

    3.regexp_replace

    语法: regexp_replace(string A, string B, string C)

    返回值: string

    说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。

    hive> select regexp_replace("IloveYou","You","") from test1 limit1;

    Ilove

    hive> select regexp_replace("IloveYou","You","lili") from test1 limit1;

    Ilovelili

    展开全文
  • hive 正则表达式

    2020-12-21 14:11:05
    简单想了下可以写udf解决,也可以用正则处理。采用正则处理的实例如下: --字符串'sdfsd1232sdf324',拆成'sdfsd','1232','sdf','324' select explode(split(regexp_replace('sdfsd1232sdf324','[0-9]+',',')...
  • 文章目录一.Hive 正则表达式概述1.1 字符集合:1.2 边界集合:1.3 重复次数集合:1.4 组合操作符:1.5 匹配操作符:1.6 转义操作符:二.Hive 正则表达式案例2.1 regexp2.2 regexp_replace2.2.1 截取字符串中汉字部分2.2.2 ...
  • 在实际的应用中,通常需要在一些复杂的、没有规律的字符串中提取数据,这时候就需要用到正则表达式了,在编程语言中基本都会支持正则表达式的,最近在用hive数据仓库处理一些数据,应用到了正则表达式,记录下在工作...
  • hive正则表达式详解

    千次阅读 2017-12-20 14:54:22
    对此,特意做了个hive正则表达式的小结。所有代码都经过亲测,正常运行。 1.regexp 语法: A REGEXP B  操作类型: strings  描述: 功能与RLIKE相同 select count(*) from olap_b_dw_hotelorder_f where ...
  • 在实际的应用中,通常需要在一些复杂的、没有规律的字符串中提取数据,这时候就需要用到正则表达式了,在编程语言中基本都会支持正则表达式的,最近在用hive数据仓库处理一些数据,应用到了正则表达式,记录下在工作...
  • hive正则表达式匹配中文或者字符

    千次阅读 2020-05-19 15:42:22
    hive正则表达式匹配中文或者字符regexp_replace()regexp_extract() regexp_replace() 案例1: select regexp_replace('四川成都市A-17号','[^A-Za-z0-9\\u4e00-\\u9fa5]',''); 结果: 四川成都市A17号 解释: 替换非...
  • 捕获会返回一个捕获组,这个分组是保存在内存中的,不仅可以在正则表达式外部通过程序进行引用,也可以在正则表达式内部进行引用,这种引用方式就是反向引用。 根据捕获组的命名规则,反向引用可分为: 1.数字编号...
  • Hive正则表达式案例

    2019-06-23 21:50:24
    一、正则表达式元字符介绍 1.常用字符 符号 描述 . 匹配除“\n”和"\r"之外的任何单个字符 [a-z] 字符范围,匹配指定范围内的任意字符 [0-9] 数字集合,匹配0到9的任意数字 \d 匹配一个数字字符,等价...
  • Hive里的正则表达式 如,hive的官网底部 输入regex可查到 下面就是hive里的正则表达式,9个字段,对应定义那边也要9个 "input.regex" = "([^ ]*) ([^ ]*) ([^.]*) \[(.*)\] "(.*)" (-|[0-9]*) (-|[(0-9]*) "(.*)" "...
  • HIVE正则语句中反斜杠问题说明
  • 这样是对的: regexp_replace('letv 乐21 你好11','[\\u4e00-\\u9fa5]+','') 正文: 想要取出来这个字符串里的英文和数字包括空格 ‘letv 乐21 你好11’ 尝试过了各种方法 ,例如这样...被正则表达式支配的今天。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 468
精华内容 187
关键字:

hive正则表达式