我正在尝试编写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]
任何帮助将不胜感激!
答案 0 :(得分:0)
如果您的正则表达式支持向前和向后搜索,则可以尝试:
(?<=\[[^\]]*),(?=[^\[]*\])
请参见此处:regexr,其中也有对正则表达式的解释。
如评论中所述,Java不支持无限宽的向后查找。您可以将输入长度设置为限制,例如如果是1000,那么它将起作用:
(?<=\[[^\]]{0,1000}),(?=[^\[]*\])