https://www.runoob.com/regexp/regexp-syntax.html
正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。
把一个由子母和数字组成的字符串,提取所有的字母串和数字串。简单想了下可以写udf解决,也可以用正则处理。采用正则处理的实例如下:
-
--字符串'sdfsd1232sdf324',拆成'sdfsd','1232','sdf','324' -
select explode(split(regexp_replace('sdfsd1232sdf324','[0-9]+',','),',')) -
union all -
select explode(split(regexp_replace('sdfsd1232sdf324','[a-z]+',','),','))
该问题解决起来不算难,借着这个问题想要整理下Hive中的正则表达式的使用。
正则表达式基本语法
普通字符
普通字符包括没有显示指定为元字符的所有可打印和不可打印字符。这包括所有大写和小写字母,所有数字,所有标点符号和其他一些符号。
非打印字符
非打印字符也可以是正则表达式的组成部分。下面列出表示非打印字符的转义序列:
| 字符 | 描述 |
|---|---|
| \cx | 匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z 或 a-z 之一。否则,将 c 视为一个原义的 'c' 字符。 |
| \f | 匹配一个换页符。等价于\x0c 和\cL |
| \n | 匹配一个换行符。等价于\x0a和\cJ |
| \r | 匹配一个回车符。等价于\x0d和\cM |
| \s | 匹配任何空白字符 |

本文介绍了正则表达式的基本语法,包括普通字符、非打印字符、特殊字符、限定符、定位符、选择和反向引用,并详细阐述了在Hive中如何使用正则表达式,如regexp、regexp_extract和regexp_replace函数的实际应用。
最低0.47元/天 解锁文章
655

被折叠的 条评论
为什么被折叠?



