Hive常用正则表达式
Hive中常见的与正则匹配相关的函数
函数 | 返回值类型 | 函数说明 |
---|---|---|
like | boolean | (A)str like (B)pattern,能否用B去完全匹配A的内容 |
rlike | boolean | (A)str rlike (B)regexp,能否用B去正则匹配A的内容 |
regexp | boolean | 功能语法同rlike一样,只是名字不同 |
regexp_replace(str, regexp, rep) | string | 将字符串str中符合正则表达式regexp的部分替换成字符串rep |
regexp_extract(str, regexp[, idx]) | string | 将字符串str按照正则表达式regexp的规则拆分,返回idx指定位置的字符 |
注:用 [ ] 括起来的表示是可选参数。
1、like
使用格式:A like B,其中A是字符串,B是表达式,表示能否用B去表示A的所有内容。
否定的用法是 A not like B,或not A like B,与like相反。
返回值为boolean类型,如果A或者B有一个为NULL,则返回值为NULL。
表达式B中的匹配字符只能是 _ 和 %,_ 表示任意单个字符,% 表示任意数量的字符。
select 'hellohive' like 'hello%';
--返回结果:true
select 'hellohive' like 'hello_';
--返回结果:false
select 'hellohive' like 'hello____';
--返回结果:true
2、rlike/regexp
使用格式:A rlike B,其中A是字符串,B是正则表达式,符合Java正则表达式,表示字符串A是否符合正则表达式B的正则规则,rlike里的r就是regular规则的意思。
否定的用法是 A not rlike B,或not A rlike B,与rlike相反。
返回值为boolean类型,如果A或者B有一个为NULL,则返回值为NULL。
select '\\';
--返回结果:\
select 'hellohive' regexp 'hello(hive)?'; --是否是hello或者hellohive
--返回结果:true
select 'abc123456' regexp '^\\d+&'; --是否由纯数字组成
--返回结果:false
select 'abc123456' regexp '\\d+'; --是否含有数字
--返回结果:trueselect 'hellohive' rlike '^[a-zA-Z]+$'; --是否由纯字母组成
--返回结果:true
select 'hello hive' rlike '^[a-zA-Z]+$';
--返回结果:false
中文匹配:
- 1、匹配是否由纯中文组成(全部字符为中文汉字)
select '中国' rlike '^[\\u4e00-\\u9fa5]+$';
--返回结果:true
select 'hello 中国' rlike '^[\\u4e00-\\u9fa5]+$';
--返回结果:false- 2、匹配含有中文的(有中文汉字即满足)
select 'hello 中国' rlike '[\\u4e00-\\u9fa5]+';
--返回结果:true- 3、匹配不含有中文的
select 'hello 中国' not rlike '[\\u4e00-\\u9fa5]+';
--返回结果:false
3、regxep_replace
- 1、截取字符串中的汉字部分,将非中文部分替换为空
select regexp_replace('i love 中国!!','([^\\u4E00-\\u9FA5]+)','') ;
--返回结果:中国- 2、替换掉制表符、换行符、回车符
select regexp_replace('\t abc \n def \r hij', '\n|\t|\r', '');
--返回结果:abc def hij
4、regxep_extract
select regexp_extract('ilovechina', 'i(.*?)(china)', 1);
--返回结果:love
select regexp_extract('ilovechina', 'i(.*?)(china)', 0);
--返回结果:ilovechina
select regexp_extract('ilovechina', 'i(.*?)(china)', 2);
--返回结果:youselect regexp_extract('ilovechina', 'i(.*?)(chi)(na)', 1);
--返回结果:love
select regexp_extract('ilovechina', 'i(.*?)(chi)(na)', 2);
--返回结果:chi
select regexp_extract('ilovechina', 'i(.*?)(chi)(na)', 3);
--返回结果:na
select regexp_extract('ilovechina', 'i(.*?)(chi)(na)');
--返回结果:love
其中第三个参数idx不填时,默认idx为1。
只有当字符串符合正则表达式regexp规则时,才有结果返回。idx为0时返回字符串本身。
5、正则指定查询列
有时候我们只需要查询一个表中除了某个别字段之外的字段,如果字段很多的话,使用正则查询字段可以节省时间。
set hive.support.quoted.identifiers=none;
- 1、查询以time结尾的字段
select `.+time` from table;
select `.*time` from table;- 2、查询除了ejd和ehub之外的字段
select `(ejd|ehub)?+.+` from table;- 2、查询除了以ejd或ehub开头的之外的字段
select `(ejd|ehub.*)?+.+` from table;
Hive常用正则表达式相关推荐
- hive 常用正则表达式
一.校验数字的表达式 数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的 ...
- Hive常用函数大全一览
Hive常用函数大全一览 1 关系运算 1.1 1.等值比较: = 1.2 2.不等值比较: 1.3 3.小于比较: < 1.4 4.小于等于比较: <= 1.5 5.大于比较: > ...
- Hive常用运算(关系运算)、逻辑运算与数学运算、数值运算、日期函数、条件函数、字符串函数
hive 常用运算 第一部分:关系运算 Hive支持的关系运算符 •常见的关系运算符 •等值比较: = •不等值比较: <> •小于比较: < •小于等于比较: <= •大于比 ...
- 最详细的HIve常用函数整理及案例演示
Hive常用函数 一.测试数据集 1.1 测试数据集: 1.2 结果展示 二.常用函数 2.1 关系运算 2.1.1 常见关系运算符 2.1.2 空值判断 2.1.3 非空判断 2.1.4 LIKE ...
- hive常用函数(一)
hive常用函数一般分为下面几个部分: 算数运算符:+,- ,*, / 关系运算符:== , <>(不等于) , > , >= , < , <= 逻辑运算符:and ...
- HIVE 常用函数总结
HIVE 常用函数总结 hive 函数比较多,之前总是随用随查,今天把常用的函数总结一下,以后方便查阅. 本文主要涉及以下几个大面: 1.Hive函数介绍以及内置函数查看 内容较多,见<Hive ...
- HIVE——常用sql命令总结
文章目录 hive常用交互命令 `-e`执行sql `-f`执行脚本中sql语句 hive cli命令行窗口操作hdfs 查看hive中输入的所有历史命令 库 创建库 查看库 使用库 修改库 删除库 ...
- 一文搞定Hive常用运算和函数
Hive常用运算和函数 关系运算 等值比较: = 不等值比较: <> 小于比较: < 小于等于比较: <= 大于等于比较: >= 空值判断: IS NULL 非空判断: ...
- [Hive_add_8] Hive 常用参数配置
0. 说明 记录 Hive 常用参数的配置 1. 设置本地模式 让 Hive 自动使用 Hadoop 的本地模式运行作业,提升处理性能 适合小文件,一般用于测试 set hive.exec.mode. ...
- 常用正则表达式合集与工具
any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具. image 安装 VS Code 应用商 ...
最新文章
- Pass Infrastructure基础架构(下)
- 利用RGB-D数据进行人体检测 带dataset
- 深度学习(二十六)Network In Network学习笔记-ICLR 2014
- 【版本工具】SVN-E155036 Working copy ... is too old Please see the ‘svn upgrade‘ command
- maven项目创建过慢解决
- Android—屏幕适配和卡顿优化
- linux安装mongo卸载mongo,CentOS7安装及卸载MongoDB.md
- AT指令集及S寄存器
- VC调试选项说明:md /mdd /ml /mt/mtd
- 提升工作效率的优秀工具收藏
- 数据结构 队列Queue
- leetcode 名单 Insertion Sort List
- phpcms v9二次开发之模型类的应用(2)
- postgresql将数据从一个表内容插入到另一个表_关系型数据库管理系统openGauss 1.0.1版本发布...
- SQL语句查询今天、昨天、近7天、近30天、一个月内、上一月 数据
- windows程序设计-王
- jeesit 基于springMVC + mybatis配置多数据源的问题
- android 车载安富蓝牙电话开发,Android平台BLE低功耗蓝牙开发
- Discussing a meal讨论餐饭(口语小白)
- 分享个好用的在线翻译器拍照扫一扫方法