在一个字符串之一之后提取第一个数字字符序列

时间:2018-01-19 10:31:10

标签: regex hive

我有几个字符串

'delivery|1111111'
'order|22222222'
'smth else|3333333'

我需要在delivery|order|之后提取第一个数字字符序列。

如果只是我做的那个

select regexp_extract('delivery|1111111|22222222', 'delivery\\|(\\d+)', 1);

并获取1111111,但当我尝试两者时

select regexp_extract('order|22222222|11111111', '(delivery\\|(\\d+)|order\\|(\\d+))', 1);

我得到order|22222222。我该怎么做?

1 个答案:

答案 0 :(得分:2)

如果Hive正则表达式是Java正则表达式,请尝试使用此正则表达式:(?:delivery|order)\\|(\\d+)

问题是你正在使用三个捕获组,而你选择的组会捕获整个字符串。