我有几个字符串
'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
。我该怎么做?
答案 0 :(得分:2)
如果Hive正则表达式是Java正则表达式,请尝试使用此正则表达式:(?:delivery|order)\\|(\\d+)
问题是你正在使用三个捕获组,而你选择的组会捕获整个字符串。