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

问题描述 投票:0回答:1

我正在尝试编写一个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]

任何帮助,将不胜感激!

regex hive
1个回答
0
投票

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

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

看到这里:regexr,也有正则表达式的解释。

正如评论中所提到的,Java不支持无限宽度的lookbehind。您可以将输入长度设置为限制,例如如果它是1000,这将工作:

(?<=\[[^\]]{0,1000}),(?=[^\[]*\])
© www.soinside.com 2019 - 2024. All rights reserved.