欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

Hive正则匹配函数regexp_extract

程序员文章站 2022-04-22 21:01:45
1。regexp_extract 语法: regexp_extract(stringsubject, stringpattern, intindex) 返回值:string 说明: 将字...

1。regexp_extract

语法: regexp_extract(stringsubject, stringpattern, intindex)

返回值:string

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

第一参数: 要处理的字段

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

第三个参数:

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

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

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.htmspm=608.7065813.ne.1.Ni3rsN&id=522228774076&tracelog=fromnonactive','id=([0-9]+)',0),    -- id=522228774076
regexp_extract('https://detail.tmall.com/item.htmspm=608.7065813.ne.1.Ni3rsN&id=522228774076&tracelog=fromnonactive','id=([0-9]+)',1),    -- 522228774076
 
regexp_extract('https://a.m.taobao.com/i41915173660.htm','i([0-9]+)',0),            -- i41915173660
regexp_extract('https://a.m.taobao.com/i41915173660.htm','i([0-9]+)',1)             -- 41915173660

正则解释:

^ 表示开头

$ 表示结尾

. 表示任意字符

* 表示任意多个