用Java替换正则表达式

用Java替换正则表达式,java,regex,replace,Java,Regex,Replace,我有一个Java字符串,如下所示: REF([123],[456],[78]),REF([789],[456],[12]),{111},REF([8069],[8098],[56]) 我需要删除所有引用中出现的所有第三个数字。这意味着我需要从字符串中删除[78]、[12]和[56](从第二个逗号开始,直到结束括号之前),以便获得以下输出: REF([123],[456]),REF([789],[456]),{111},REF([8069],[8098]) 我的正则表达式应该是什么?喜欢评论模

我有一个Java字符串,如下所示:

REF([123],[456],[78]),REF([789],[456],[12]),{111},REF([8069],[8098],[56])
我需要删除所有引用中出现的所有第三个数字。这意味着我需要从字符串中删除[78]、[12]和[56](从第二个逗号开始,直到结束括号之前),以便获得以下输出:

REF([123],[456]),REF([789],[456]),{111},REF([8069],[8098])


我的正则表达式应该是什么?

喜欢评论模式,以前从未见过。这是一个精确而优雅的解决方案。解释得也很好。非常感谢Tim。喜欢评论模式,以前从未见过。这是一个精确而优雅的解决方案。解释得也很好。非常感谢Tim。喜欢评论模式,以前从未见过。这是一个精确而优雅的解决方案。解释得也很好。非常感谢Tim。喜欢评论模式,以前从未见过。这是一个精确而优雅的解决方案。解释得也很好。非常感谢蒂姆。一个裁判中可能有四个数字吗?如果是的话,会发生什么?蒂姆,裁判中不可能有第四个数字。此外,REF也可以作为“REF”或“REF”存在,不区分大小写。好的,我已经编辑了我的正则表达式:)REF中可能有四个数字,如果有,那么会发生什么?REF中不能有第四个数字,Tim。此外,REF也可以作为“REF”或“REF”存在,不区分大小写。好的,我已经编辑了我的正则表达式:)REF中可能有四个数字,如果有,那么会发生什么?REF中不能有第四个数字,Tim。此外,REF也可以作为“REF”或“REF”存在,不区分大小写。好的,我已经编辑了我的正则表达式:)REF中可能有四个数字,如果有,那么会发生什么?REF中不能有第四个数字,Tim。REF也可以作为“REF”或“REF”存在,不区分大小写。好的,我已经编辑了我的正则表达式:)
String result = subject.replaceAll(
    "(?xi)(      # Match and capture in group 1:\n" +
    "REF\\(      # REF(\n" +
    "\\[\\d+\\], # a number in brackets, comma,\n" +
    "\\[\\d+\\]  # a number in brackets\n" +
    ")           # End of capturing group\n" +
    ",\\[\\d+\\] # Match a comma and a third number in brackets", "$1");