相对于正则表达式世界而言,这是新事物,所以请耐心等待。 我正在尝试使用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=(.*?)]|.*
非常感谢您的建议。我现在已经中途了:(
答案 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")