提取数字前的前几个字母并跳过其余字母
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)
【讨论】:
以上是关于提取数字前的前几个字母并跳过其余字母的主要内容,如果未能解决你的问题,请参考以下文章