Hive:regexp_replace方括号

时间:2014-01-15 02:20:49

标签: 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 properties p;

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

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