替换匹配组中一个字符的多个实例

时间:2018-09-08 13:24:47

标签: regex hive

我正在尝试编写regexp_replace以用分号(;)替换方括号内的逗号(,)。

输入字符串:

gc:network,sm:Out of stock,fm:[PUT,Free store pickup today,S2H],pb:[Rollback,Test]

预期输出:

gc:network,sm:Out of stock,fm:[PUT;Free store pickup today;S2H],pb:[Rollback;Test]

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

如果您的正则表达式支持向前和向后搜索,则可以尝试:

(?<=\[[^\]]*),(?=[^\[]*\])

请参见此处:regexr,其中也有对正则表达式的解释。

如评论中所述,Java不支持无限宽的向后查找。您可以将输入长度设置为限制,例如如果是1000,那么它将起作用:

(?<=\[[^\]]{0,1000}),(?=[^\[]*\])