hive regex_replace给出无法编译regexp模式错误could not compile regexp pattern: [[ error: missing ]: [[

wsxa1bj1  于 2021-04-02  发布在  Hive
关注(0)|答案(1)|浏览(1180)

我试图替换字符串中的" [[" 和" ]]" ,我使用了两个regex_replace函数来实现。

Select regexp_replace(regexp_replace("[[2020-03-23T10:33:03Z, 224554, training, 2019-05-06T15:53:23Z, Completed]]"
,"]]",""),"[[","")

当我尝试替换第一个字符串"]]"时,它工作得很好,但如果我对"[["做同样的操作,我得到一个编译错误。
could not compile regexp pattern: [[ error: missing ]: [[

enyaitl3

enyaitl31#

[]]字符在regexp中具有特殊的意义,应该使用双反斜杠进行转义,也可以使用or ( | )将[[]]组合到一个regexp_replace中。

Select regexp_replace("[[2020-03-23T10:33:03Z, 224554, training, 2019-05-06T15:53:23Z, Completed]]"
,"\\]\\]|\\[\\[","")

结果:

2020-03-23T10:33:03Z, 224554, training, 2019-05-06T15:53:23Z, Completed

你可以用一个方括号代替两个方括号,并在任何数量的方括号中使用定量符///2}///+

相关问题