单hive查询提取一段字符串

Single hive query to extract a piece of string

我有一个像这样的列数据 "testdata" "NEW /abc/testapp/v1 POST/6.0",我想将输出检索为 "/abc/testapp/v1"

我可以像这样检索从 (/abc/testapp/v1 POST/6.0) 开始的数据

select regexp_extract(testdata,'^(.*?)(?:/)(.*)$', 2) from tablename;

但不确定如何删除同一 query.Can 中的 POST/6.0 部分,有人请帮忙吗?

您可以从第一个斜线开始,直到下一个斜线 space:

regexp_extract(testdata, '(/[^\s]+)', 0)

尝试以下任一方法

regexp_extract(testdata,'\S+', 0, 2)

-

regexp_extract(testdata,'/\S+', 0)

-

regexp_extract(testdata,'\s+(\S+)', 1)