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常用正则表达式相关推荐

  1. hive 常用正则表达式

    一.校验数字的表达式 数字:^[0-9]*$n位的数字:^\d{n}$至少n位的数字:^\d{n,}$m-n位的数字:^\d{m,n}$零和非零开头的数字:^(0|[1-9][0-9]*)$非零开头的 ...

  2. Hive常用函数大全一览

    Hive常用函数大全一览 1 关系运算 1.1 1.等值比较: = 1.2 2.不等值比较: 1.3 3.小于比较: < 1.4 4.小于等于比较: <= 1.5 5.大于比较: > ...

  3. Hive常用运算(关系运算)、逻辑运算与数学运算、数值运算、日期函数、条件函数、字符串函数

    hive 常用运算 第一部分:关系运算 Hive支持的关系运算符 •常见的关系运算符 •等值比较: = •不等值比较: <> •小于比较: < •小于等于比较: <= •大于比 ...

  4. 最详细的HIve常用函数整理及案例演示

    Hive常用函数 一.测试数据集 1.1 测试数据集: 1.2 结果展示 二.常用函数 2.1 关系运算 2.1.1 常见关系运算符 2.1.2 空值判断 2.1.3 非空判断 2.1.4 LIKE ...

  5. hive常用函数(一)

    hive常用函数一般分为下面几个部分: 算数运算符:+,- ,*, / 关系运算符:== , <>(不等于) , > , >= , < , <= 逻辑运算符:and ...

  6. HIVE 常用函数总结

    HIVE 常用函数总结 hive 函数比较多,之前总是随用随查,今天把常用的函数总结一下,以后方便查阅. 本文主要涉及以下几个大面: 1.Hive函数介绍以及内置函数查看 内容较多,见<Hive ...

  7. HIVE——常用sql命令总结

    文章目录 hive常用交互命令 `-e`执行sql `-f`执行脚本中sql语句 hive cli命令行窗口操作hdfs 查看hive中输入的所有历史命令 库 创建库 查看库 使用库 修改库 删除库 ...

  8. 一文搞定Hive常用运算和函数

    Hive常用运算和函数 关系运算 等值比较: = 不等值比较: <> 小于比较: < 小于等于比较: <= 大于等于比较: >= 空值判断: IS NULL 非空判断: ...

  9. [Hive_add_8] Hive 常用参数配置

    0. 说明 记录 Hive 常用参数的配置 1. 设置本地模式 让 Hive 自动使用 Hadoop 的本地模式运行作业,提升处理性能 适合小文件,一般用于测试 set hive.exec.mode. ...

  10. 常用正则表达式合集与工具

    any-rule 维护了一个常用正则表达式合集,并且本身是一个支持 Web/VS Code/idea/Alfred Workflow 多平台的正则表达式工具. image 安装 VS Code 应用商 ...

最新文章

  1. Pass Infrastructure基础架构(下)
  2. 利用RGB-D数据进行人体检测 带dataset
  3. 深度学习(二十六)Network In Network学习笔记-ICLR 2014
  4. 【版本工具】SVN-E155036 Working copy ... is too old Please see the ‘svn upgrade‘ command
  5. maven项目创建过慢解决
  6. Android—屏幕适配和卡顿优化
  7. linux安装mongo卸载mongo,CentOS7安装及卸载MongoDB.md
  8. AT指令集及S寄存器
  9. VC调试选项说明:md /mdd /ml /mt/mtd
  10. 提升工作效率的优秀工具收藏
  11. 数据结构 队列Queue
  12. leetcode 名单 Insertion Sort List
  13. phpcms v9二次开发之模型类的应用(2)
  14. postgresql将数据从一个表内容插入到另一个表_关系型数据库管理系统openGauss 1.0.1版本发布...
  15. SQL语句查询今天、昨天、近7天、近30天、一个月内、上一月 数据
  16. windows程序设计-王
  17. jeesit 基于springMVC + mybatis配置多数据源的问题
  18. android 车载安富蓝牙电话开发,Android平台BLE低功耗蓝牙开发
  19. Discussing a meal讨论餐饭(口语小白)
  20. 分享个好用的在线翻译器拍照扫一扫方法

热门文章

  1. 令牌环 典型例题分析解答
  2. Producter:让产品从0到1
  3. 大航海时代4+伙伴加入条件和港口一览
  4. c语言网页制作,C语言写网页
  5. windows安装hbase
  6. hive系列-hive教程
  7. uooc c语言作业测验答案,UOOC优课在线组织行为学测验作业答案
  8. fseek函数c语言_在C / C ++中使用fseek()函数的指南
  9. C语言自学笔记(16)
  10. PLSQL和ORACLE客户端安装