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



>我有几个字符串

'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.我该怎么做?

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

问题是您正在使用三个捕获组,并且您选择的组捕获整个字符串。

最新更新