使用配置单元正则表达式获取值

flmtquvp  于 2021-06-28  发布在  Hive
关注(0)|答案(1)|浏览(366)

我想在配置单元中提取正则表达式匹配值。下面是我的表列数据。数据仅用于单列。将此列视为csv数据列表。
表1:col1

1234|REQUIRED|VALUE|ABC|true
3991|NOT REQUIRED|VALUE|ABC|false,1234|REQUIRED|VALUE||true 
3214|NOT REQUIRED|VALUE|ABCD|true,1234|REQUIRED|VALUE|ABC|false,1234|NOT REQUIRED|||false
1254|NOT REQUIRED||UPC|true,1235|REQUIRED||ABC|true

我想要管道之间的第二个值。
第一个值=>1234
第四个值=>
第5个值=>真
我的问题:

select regexp_extract(col1, '1234\|([^|]{0,})\|[^|]{0,}\|ABC\|true', 1) col from table1;

预期产量:

REQUIRED
REQUIRED
<NULL>(OR EMPTY)
REQUIRED

当前查询输出:

<NULL>
<NULL>
<NULL>
<NULL>

我不知道哪里的查询错的时候。这是一个配置单元正则表达式。

b09cbbtk

b09cbbtk1#

我得到了要求的答案。我不得不两次逃出烟斗。

select regexp_extract(col1, '1234\\|([^|]{0,})\\|[^|]{0,}\\|ABC\\|true', 1) col from table1;

相关问题