Hive:regexp_replace方括号

问题描述:

我需要替换类似下面的键:值对的方括号。任何帮助深表感谢!在 '属性' 长相Hive:regexp_replace方括号

数据是这样的:

name: property1 
value: [12345667:97764458] 

**code** 
SELECT p.name, regexp_replace(p.value,'[','') AS value 
FROM properties p 

解决:修改后的代码

SELECT p.name, regexp_replace(p.value,'\\[|\\]','') AS value 
FROM properties p; 

这里是你的正则表达式[\[\]]+这将匹配字符串中的一个或多个[]

+0

若昂,谢谢。我仍然遇到运行此错误。也许我错误地使用了代码?请参阅原始提交中的修订代码。 –

+0

pe.value不存在,您的表名称别名是'p'。 –

+0

对不起,这是上面的代码中的一个错字。我添加了返回的错误。 –

您总是需要在Hive正则表达式中将您的反斜杠加倍。这是因为在Hive字符串中使用单个反斜杠作为转义字符,因此在正则表达式解析器可以看到它之前它将被剥离。双反斜杠变成一个反斜杠,这就是你需要的。

要查看反斜杠是如何被剥夺使用您正则表达式作为字符串文字只是运行一个选择:

select '\\[' from t limit 1; 
OK 
\[