Hive 配置单元:regexp\u替换方括号

Hive 配置单元:regexp\u替换方括号,hive,square-bracket,Hive,Square Bracket,我需要替换键:值对周围的方括号,如下所示。非常感谢您的帮助 “属性”中的数据如下所示: 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 prop

我需要替换键:值对周围的方括号,如下所示。非常感谢您的帮助

“属性”中的数据如下所示:

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;

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

您始终需要在配置单元正则表达式中将反斜杠加倍。这是因为一个反斜杠被用作配置单元字符串中的转义字符,所以在正则表达式解析器看到它之前,它会被去掉。双反斜杠变成单反斜杠,这正是您所需要的

要查看反斜杠是如何去除的,只需使用正则表达式作为字符串文本运行select:

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

乔奥,谢谢。我在运行这个时仍然会出错。也许我用错代码了?请参阅原始submission.pe.value中的修订代码不存在,您的表名别名为“p”。很抱歉,上面的代码有误。我添加了返回的错误