HiveSQL的REPLACE()函数,REGEXP_REPLACE()未按预期工作

HiveSQL的REPLACE()函数,REGEXP_REPLACE()未按预期工作,hive,hiveql,Hive,Hiveql,我运行以下语句来替换“.”to“”的字符: NewColumn的结果变成“…”,REGEXP\u REPLACE()函数有什么问题?REGEXP\u REPLACE需要一个regex模式表示正则表达式中的任何字符,因此所有字符对都将替换为句号,因为您指定了。作为正则表达式模式 要防止出现这种情况,您可以退出fullstop: REGEXP_REPLACE(Column2, "\\.\\.", ".") 或者使用replace,它需要字符串模式: REPL

我运行以下语句来替换“.”to“”的字符:


NewColumn的结果变成“…”,REGEXP\u REPLACE()函数有什么问题?

REGEXP\u REPLACE
需要一个regex模式
表示正则表达式中的任何字符,因此所有字符对都将替换为句号,因为您指定了
作为正则表达式模式

要防止出现这种情况,您可以退出fullstop:

REGEXP_REPLACE(Column2, "\\.\\.", ".")
或者使用
replace
,它需要字符串模式:

REPLACE(Column2, "..", ".")

除了@mck所建议的之外,您还可以使用量词来重复模式

REGEXP_REPLACE(Column2, "\\.{2}", ".")
或者,如果要用单个点替换2个或多个点:

REGEXP_REPLACE(Column2, "\\.{2,}", ".")
REGEXP_REPLACE(Column2, "\\.{2,}", ".")