在数字之前提取前几个字母,然后跳过其余的字母

时间:2019-05-31 14:53:13

标签: sql regex impala hue

我有一个奇怪的要求,我们要提取字符串中的前几个字母,而忽略其余的可以包含字母和数字的组合。 例如
文字

1.  aaaa bbbb ccc 00110011 ddd eee ff 00 99 
2.  bbbbbbbbbbbbbbbbbbbbbb 0123 azbe 999999999999999  
3.  zfsfzzzzzzzzzz asasas 111 3333333 xxysys ddddd  9090909  
4.  Returns the nth field within a delimited string 5555555555 99999999

输出

1.  aaaa bbbb ccc 
2.  bbbbbbbbbbbbbbbbbbbbbb 
3.  zfsfzzzzzzzzzz asasas 
4.  Returns the nth field within a delimited string

我们正在使用Hue / Impala,并希望在数字字符串开始之前提取所有第一个字符或所有剩余字符中的字母。

谢谢

2 个答案:

答案 0 :(得分:1)

如果您能够使用正则表达式(因为已将其作为标记放置),则可以使用以下内容进行匹配(直到数字匹配):

^[^0-9]*

答案 1 :(得分:0)

我认为regexp_extract()应该有效:

select regexp_extract(col, '^[a-zA-Z ]+', 0)