我需要替换键:值对周围的方括号,类似于以下内容。任何帮助深表感谢!
'属性'中的数据如下所示:
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 :(得分:3)
你总是需要在Hive正则表达式中加倍反斜杠。这是因为单个反斜杠用作Hive字符串中的转义字符,因此在正则表达式解析器可以看到它之前它将被剥离。双反斜杠成为一个反斜杠,这是你需要的。
要查看反斜杠是如何被剥离的,只需使用正则表达式作为字符串文字运行一个选择:
select '\\[' from t limit 1;
OK
\[
答案 1 :(得分:1)
以下是正则表达式[\[\]]+
,这将匹配字符串中的一个或多个[
和]
。