提取数字前的前几个字母并跳过其余字母

Posted

技术标签:

【中文标题】提取数字前的前几个字母并跳过其余字母【英文标题】:Extract first few alphabets before numbers and skip the rest 【发布时间】:2019-05-31 14:53:12 【问题描述】:

我有一个奇怪的要求,我们想提取字符串中的前几个字母,然后跳过其余字母和数字的组合。 例如 文字

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,并希望在数字字符串开始之前提取第一个字符中的所有字母或所有左侧字符。

谢谢

【问题讨论】:

^[^0-9]+^[^0-9]+[[:>:]] 怎么样 【参考方案1】:

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

^[^0-9]*

【讨论】:

或 ^[a-z|A-Z| ]* 反过来【参考方案2】:

我认为regexp_extract() 应该可以工作:

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

【讨论】:

以上是关于提取数字前的前几个字母并跳过其余字母的主要内容,如果未能解决你的问题,请参考以下文章

如何仅按某个列值的前几个字母对 SQL 查询进行分组?

从混合字母和数字列熊猫中提取日期时间

字符串截取

用shell提取txt文本中的前4个字母,赋值到另一个变量

C语言 指针s所指向的字母数字串中只包含数字和字母,实现除了字符串前的数字字符保留,其他的数字字符全部删除。

Hive 查询以提取具有字母数字字符的列