Hive中正则表达式替换函数 regexp_replace和正则表达式解析函数 regexp_extract的用法总结

Hive中 正则表达式替换函数 regexp_replace和正则表达式解析函数 regexp_extract的用法总结

Hive中有很多字符串相关的函数,其中有两个与正则表达式相关的比较特殊,近期使用的时候做了较多的测试,做个笔记,鼓励一下自己,每天进步一点点。

正则表达式替换函数 regexp_replace

正则替换是常用的字符串替换函数

  1. 语法:regexp_replace(string subject, string pattern, string str)
  2. 参数说明:subject为被替换的字符串,pattern为正则表达式,str为替换正则表达式(匹配到的字符串)的字符串
  3. 描述:将字符串subject中,符合正则表达式pattern的字符串,替换为字符串str,然后将替换后的整个字符串返回
  4. 测试:
#执行语句1
hive> select regexp_replace('abcdefg','abc','ABA') as res;
#执行结果1
res
ABAdefg
Time taken: 0.041 seconds, Fetched: 1 row(s)

#执行语句2
hive> select regexp_replace('abcdefg','[^aceg]','x') as res;
#执行结果2
res
axcxexg
Time taken: 0.028 seconds, Fetched: 1 row(s)

正则表达式解析函数 regexp_extract

先了解正则中捕获分组的概念,其实就是一个括号内的内容,如 “(\d)\d” 而"(\d)" 这就是一个捕获分组

  1. 语法:regexp_extract(string subject, string pattern, int index)
  2. 参数说明:subject为被解析的字符串,pattern为正则表达式,index为正则表达式中捕获分组的序号,取值范围是0~n(n为捕获分组个数)。
    其中,index取值为 0:返回pattern匹配到的整个结果;
    index取值为1:返回pattern中第1个捕获分组匹配到的结果;

    index取值为n:返回pattern中第n个捕获分组匹配到的结果;
    index取值小于0或者大于n:报错。
  3. 描述:将字符串subject,按照pattern正则表达式的规则拆分,返回index指定的字符。
  4. 测试:
#执行语句1
hive> select regexp_extract('abcdefg'
  • 6
    点赞
  • 70
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hiveregexp_replace函数用于根据指定的正则表达式替换字符串。函数的语法为:regexp_replace(column, regular_expression, replace_string)。其,column是要进行匹配的字符串,regular_expression是正则表达式replace_string是用来替换的字符串。举个例子,如果我们要将字符串'2022-05-04'的数字替换成字母'A',可以使用以下语句: SELECT REGEXP_REPLACE('2022-05-04', '[0-9]', 'A') 这样就会将字符串的数字全部替换成字母'A'。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Hive正则表达式替换函数 regexp_replace正则表达式解析函数 regexp_extract用法总结](https://blog.csdn.net/TinyNasubi/article/details/102726927)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [hivesubstr和regexp_replace的使用](https://blog.csdn.net/AnameJL/article/details/124566081)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值