regexp\u在配置单元中提取参数

ogq8wdun  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(340)

花括号中的参数在下面的代码段中起什么作用?

regexp_extract(col_value, '^(?:([^,]*)\,?){1}', 1) Id,  
regexp_extract(col_value, '^(?:([^,]*)\,?){2}', 1) Score,  
regexp_extract(col_value, '^(?:([^,]*)\,?){9}', 1) DisplayName,
hxzsmxv2

hxzsmxv21#

正如您在这里看到的,花括号中包含前面的标记(在本例中是非捕获组)可能重复的次数。
该组包含一个由非逗号字符组成的捕获组(可能为空),后跟一个可选的逗号。因为花括号中只有一个数字,所以非捕获组必须准确地重复这个数字。
我不知道为什么逗号应该用反斜杠转义。在我看来,反斜杠是没有必要的。
警告:我不知道hadoop或hive,我所有的知识 regexp_extract 来自此页。
这些正则表达式的目的是匹配逗号分隔列表中的第一、第二和第九个元素,其中捕获组#1(由 regexp_extract )仅返回其最后一次出现。当然,除了最后一个元素之后,逗号并不是真正可选的。

相关问题