当前位置:   article > 正文

hive 正则表达式详解_hive正则表达式过滤特殊字符

hive正则表达式过滤特殊字符

hive正则表达式是很强大的。无论是数据开发还是数据仓库在工作中都离不开正则表达式,通过正则表达式可以对复杂的字符串进行过滤、截取、替换。为此特意做了个hive正则表达式的小结。

一、语法

字符说明等于
\将下一字符标记为特殊字符、文本、反向引用或八进制转义符。e.g:“n"匹配字符"n”。"\n"匹配换行符。序列"\\“匹配”","\(“匹配”("
^匹配输入字符串开始的位置
$匹配输入字符串结束的位置
*零次或多次匹配前面的字符或子表达式{0,}
+一次或多次匹配前面的字符或子表达式{1,}
?零次或一次匹配前面的字符或子表达式{0,1}
{n}n是非负整数。正好匹配n次。e.g:"o{2}"与"job"中的"o"不匹配,但与"food"中的两个"o"匹配
{n,}n是非负整数。至少匹配n次。e.g:"o{2,}“不匹配"job"中的"o”,而匹配"fooooood"中的所有o ,o{1,}“等效于o+”
{n,m}m和n是非负整数,其中n<=m。匹配至少n次,至多m次。
.匹配除"\r\n"之外的任何单个字符
[xyz]字符集。匹配包含的任一字符。e.g:"[abc]“匹配"plain"中的"a”
[^xyz]反向字符集。匹配未包含的任何字符。
[a-z]字符范围。匹配指定范围内的任何字符。e.g:"[^abc]“匹配"plain"中"p”,“l”,“i”,“n”
[^a-z]反向范围字符。匹配不在指定范围内的任何字符。e.g:"[^a-z]"匹配任何不在"a"到"z"范围内的任何字符
\d数字字符匹配。
\D非数字字符匹配。
\s匹配任何空白字符,包括空格、制表符、换页符等[0-9]
\S匹配任何非空白字符[^0-9]
\w匹配任何类字符,包括下划线
\W与任何非单词字符匹配

二、函数

ge:conent_info

fgds
fd
dffd

1.regexp

语法: XXXX REGEXP 表达式
操作类型: STRING
说明: 功能与RLIKE相同用于过滤字符串

  1. eg:获取含数字的字符串
  2. hive> select id
  3. from
  4. (
  5. select 'abc01' id
  6. union all
  7. select 'abc'
  8. union all
  9. select '1abc'
  10. union all
  11. select 'a0bc'
  12. ) a
  13. where id regexp '\\d'
  14. abc01
  15. 1abc
  16. a0bc

2.regexp_extract

语法: regexp_extract(XXXX, 表达式, 索引位置)
返回值: string
说明:将字符串subject按照pattern正则表达式的规则拆分,返回index指定的字符。

select  regexp_extract(cc, '33', 3) from concent_info

3.regexp_replace
语法: regexp_replace(string A, string B, string C)
返回值: string
说明:将字符串A中的符合java正则表达式B的部分替换为C。注意,在有些情况下要使用转义字符,类似oracle中的regexp_replace函数。
select  regexp_replace(cc, '5564', 'cyx') from concent_info

参考链接:

  1. https://www.iteblog.com/archives/1639.html hive字符串处理函数,比较全
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/605152
推荐阅读
相关标签
  

闽ICP备14008679号