Hive 正则匹配函数 regexp_extract
1。regexp_extract
语法: regexp_extract(string subject, string pattern, int index)
返回值: 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=a3regexp_extract('https://detail.tmall.com/item.htm?spm=608.7065813.ne.1.Ni3rsN&id=522228774076&tracelog=fromnonactive','id=([0-9]+)',0), -- id=522228774076
regexp_extract('https://detail.tmall.com/item.htm?spm=608.7065813.ne.1.Ni3rsN&id=522228774076&tracelog=fromnonactive','id=([0-9]+)',1), -- 522228774076regexp_extract('http://a.m.taobao.com/i41915173660.htm','i([0-9]+)',0), -- i41915173660
regexp_extract('http://a.m.taobao.com/i41915173660.htm','i([0-9]+)',1) -- 41915173660from test.dual;
正则匹配字符解释:
- ^ 表示开头
- $ 表示结尾
- . 表示任意字符
- * 表示任意多个
2。手机号清洗:
regexp_replace(mobile,'[^0-9]','') regexp '1[0-9]{10}' 返回true,则为好的手机号。
3。其他两个函数split 和 parse_url
也可以做简单的url 关键字提取, 如下
select 'xinli.ewt360.com/Psychology/Search?keyword=abc?语文数学123' url,split(split(lower('xinli.ewt360.com/Psychology/Search?keyword=abc?语文数学123/from'),'keyword=')[1],'/')[0] split1, -- 结果: abc?语文数学123split(parse_url(concat('http://',lower('xinli.ewt360.com/Psychology/Search?keyword=abc?语文数学123/from')), 'QUERY','keyword'),'/')[0] parse_url1,regexp_extract(lower('xinli.ewt360.com/Psychology/Search?keyword=abc?语文数学123'),'keyword=(.+)',1), -- 还未找到办法regexp_extract(lower('xinli.ewt360.com/Psychology/Search?keyword=语文数学'),'keyword=(^[\\u4e00-\\u9fa5]$)+') -- 中文匹配,还未验证
4. https://blog.csdn.net/lsr40/article/details/82223923
转载于:https://www.cnblogs.com/skyEva/p/5175377.html
Hive 正则匹配函数 regexp_extract相关推荐
- Hive 正则匹配函数 regexp_extract和 regexp_replace和rlike
介绍一下主要的功能函数. 参考:https://www.jianshu.com/p/3bcc06b1294b regexp_extract 相当于python当中的re.search: 遍历匹配,仅可 ...
- hive正则匹配:regexp_replace、regexp_extract、regexp
hive正则匹配:regexp_replace.regexp_extract.regexp 一.regexp语法介绍 regexp 语法: A REGEXP B 操作类型: strings 描述: 功 ...
- HIVE获取时间函数, regexp_extract正则提取用法
Hive获取时间函数 regexp_replace(date_add(from_unixtime(unix_timestamp(), "yyyy-MM-dd") , -1), '- ...
- 常用JS正则匹配函数
//校验用户名:只能输入1-30个字母 function isTrueName(s) { var patrn=/^[a-zA-Z]{1,30}$/; if (!patrn.exec(s)) retur ...
- php正则匹配函数字符串长度,PHP中preg_match函数正则匹配的字符串长度问题
PHP中preg_match函数正则匹配的字符串长度问题 发布于 2015-10-25 10:24:29 | 166 次阅读 | 评论: 0 | 来源: 网友投递 PHP开源脚本语言PHP(外文名: ...
- javascript中的正则匹配函数exec(),test(),match()
test() var str = "cat"; var reStr = /cat/; alert(reStr.test(str)); 输出为:true 它的返回值为true or ...
- HIVE正则匹配包含或者不包含多种可能的字符串
-- 匹配包含多种可能字符串 select 'tttrylooji' regexp '^((?hel|try|fty).)*$'-- 匹配不包含多种可能字符串 select 'tttrylooji' ...
- Hive内置函数与常用函数汇总
目录 Hive内置函数汇总 字符函数(字符串操作) 数学函数 集合函数 类型转换函数 日期函数 条件函数 聚合函数 表生成函数 辅助功能类函数 数据屏蔽函数(从Hive 2.1.0开始) Hive常用 ...
- php正则匹配反斜杠问题
php正则匹配反斜杠问题: 之前做了一道题,发现php中正则匹配反斜杠好像有点问题. 我们先看下面代码: <?php$cmd = "\\";echo $cmd.PHP_EOL ...
最新文章
- 深度学习与计算机视觉系列(9)_串一串神经网络之动手实现小例子
- C#委托及事件 详解(讲得比较透彻)
- Spring Cloud【Finchley】实战-06使用/actuator/bus-refresh端点手动刷新配置 + 使用Spring Cloud Bus自动更新配置
- 电脑计算器的快捷键_牛!这份金蝶财务软件使用手册+超全快捷键汇总送你,财务收好...
- Quick-Cocos2d-x初学者游戏教程2
- asio定时器深度探析
- RAN adjusts schedule for 2nd wave of 5G specifications
- php获取对象属性值
- element ui border表头设置背景颜色
- FPGA 芯片被曝严重的 Starbleed 漏洞,影响数据中心IoT工业设备等
- 【李宏毅2020 ML/DL】P77 Generative Adversarial Network | Theory behind GAN
- 卡在linuxctrld进系统_Linux系统执行df -h命令卡死的解决方案
- Linux系统中设置静态ip地址
- Atitit jOrgChart的使用 组织架构图css html
- java自学能学会吗_Java自学能学会吗?Java新手学习路线
- 使用免费阿里云服务器搭建远程桌面服务
- 常用的默认端口号(HTTP\HTTPS\FTP)
- 线结构光平面方程自动标定
- 自适应滤波器(E 题 本科组)--2017 年全国大学生电子设计竞赛试题
- 复杂边坡的ansys三维建模