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

dsf9zpds  于 2021-06-26  发布在  Hive
关注(0)|答案(1)|浏览(327)

我正在尝试编写一个regexp\u replace,用分号(;)替换方括号中的逗号(,)分隔符。
输入字符串:

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

预期产量:

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

任何帮助都将不胜感激!

to94eoyn

to94eoyn1#

如果您的regex支持lookahead和lookback,您可以尝试:

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

请看这里:regexr,这里还有一个regex的解释。
正如在注解中提到的,java不支持无限宽度的lookback。您可以将输入长度设置为limit,例如,如果输入长度为1000,则可以:

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

相关问题