Regex 配置单元:使用正则表达式拆分字符串
我有一个由Regex 配置单元:使用正则表达式拆分字符串,regex,hadoop,hive,Regex,Hadoop,Hive,我有一个由:分隔的字符串。如何使用HiveUDFregexp\u extract()从字符串中提取单词 regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',1) as word1 输出:2foa1fa regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',2) as word2 输出:12hjk ^锚定到字符串的开头 \\w查找单词字符,.*表示任意次数 \\:{2}在
:
分隔的字符串。如何使用Hive
UDF
regexp\u extract()
从字符串中提取单词
regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',1) as word1
输出:2foa1fa
regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',2) as word2
输出:12hjk
- ^锚定到字符串的开头
- \\w查找单词字符,.*表示任意次数
- \\:{2}在一行中查找两个:(这是您的::分隔符)
- $将字符串锚定到字符串的末尾
- 在regexp\u extract中指定第三个参数将提取索引(模式)
select my_array[2] from
(select split('2foa1fa::12hjk','\\::') as my_array from my_table) b;
输出:12hjk
输出:2foa1fa
regexp_extract('2foa1fa::12hjk','^(\\w.*)\\:{2}(\\w.*)$',2) as word2
输出:12hjk
- ^锚定到字符串的开头
- \\w查找单词字符,.*表示任意次数
- \\:{2}在一行中查找两个:(这是您的::分隔符)
- $将字符串锚定到字符串的末尾
- 在regexp\u extract中指定第三个参数将提取索引(模式)
select my_array[2] from
(select split('2foa1fa::12hjk','\\::') as my_array from my_table) b;
输出:
12hjk
invoketheshells答案有什么问题吗?invoketheshells答案有什么问题吗?