Hive regexp_extract返回NULL

时间:2018-11-29 19:52:27

标签: regex hive hiveql regex-group

相对于正则表达式世界而言,这是新事物,所以请耐心等待。 我正在尝试使用regexp_extract提取字符串中的某些数据子集,但是对于我当前正在尝试使用的正则表达式,它返回了NULL。

要求如下:-

String-> test = 1233 ] 3212]->提取1233

String-> test = 123355 -> 123355

这个想法是提取test =之后到字符串的第一个]或结尾的所有数据。

我现在尝试通过Hive的regexp_extract使用的正则表达式是-> Please enter Fibonacci size:10 1 1 2 3 5 8 13 21 34 55

test=(.*?)]|.*

非常感谢您的建议。我现在已经中途了:(

1 个答案:

答案 0 :(得分:1)

您可以使用

regexp_extract(col,'test=([^\\]]+)',1);

在这里使用regexp_replace似乎更合适,因为您希望在不匹配的情况下获得全部输入。

您可以使用

regexp_replace(col, ".*?test=([0-9a-zA-Z]+).*", "$1")

请参见regex demo

正则表达式将匹配整个字符串,并将删除test=子字符串之后的所有文本,但将删除1个或多个字母和数字,否则将返回整个输入。

如果除了]之外可以有其他字符,请使用

regexp_replace(col, ".*?test=([^\\]]+).*", "$1")

请参见another regex demo