我正在尝试编写一个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]
任何帮助,将不胜感激!
如果您的正则表达式支持前瞻和后瞻,您可以尝试:
(?<=\[[^\]]*),(?=[^\[]*\])
看到这里:regexr,也有正则表达式的解释。
正如评论中所提到的,Java不支持无限宽度的lookbehind。您可以将输入长度设置为限制,例如如果它是1000,这将工作:
(?<=\[[^\]]{0,1000}),(?=[^\[]*\])