如何解决在 hive 上第 n 次出现分隔符之前获取所有内容
KRW3TR.899877.GR0054656*DR.798012...2..............GR0054656*EUR*
我已经用它进行了提取,但它失败了。
REGEXP_EXTRACT(acolumn,'^([^\.]+)\.?',2)
我想要的是
KRW3TR.899877
如何用regexp extract/trim/regexp替换这个?
任何帮助/想法将不胜感激。谢谢。
解决方法
使用正则表达式:
select regexp_extract('KRW3TR.899877.GR0054656*DR.798012...2..............GR0054656*EUR*','^([^.]*\\.[^.]*)',1) --extract group number 1
正则表达式的含义:
^ - beginning of the string anchor
[^.]* - not a dot 0 or more times
\\. - dot
[^.]* - not a dot 0 or more times
结果:
KRW3TR.899877
,
您可以使用 substring_index
,它返回给定分隔符 (.) 出现给定次数 (2) 之前的子字符串:
SELECT substring_index(
'KRW3TR.899877.GR0054656*DR.798012...2..............GR0054656*EUR*','.',2
);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。