在java中删除额外括号的正则表达式

在java中删除额外括号的正则表达式,java,regex,Java,Regex,我有如下数据 [[123,345,768]] 我想要数据 [123,345,768] 我可以使用java中的正则表达式是什么?它与代码示例类似: "[[123,345,768]]".replaceAll("(\\[|\\])+", "$1")); 当然,这一个将删除所有的倍增括号。您可以: str.replaceAll("\\[(\\[[0-9,]+\\])\\])", "$1"); 它扔掉了外括号,保留了内括号,如果它仍然用括号括起来,并且只包含数字和逗号 str.replaceA

我有如下数据

 [[123,345,768]]
我想要数据

 [123,345,768]

我可以使用java中的正则表达式是什么?

它与代码示例类似:

"[[123,345,768]]".replaceAll("(\\[|\\])+", "$1"));
当然,这一个将删除所有的倍增括号。

您可以:

str.replaceAll("\\[(\\[[0-9,]+\\])\\])", "$1");
它扔掉了外括号,保留了内括号,如果它仍然用括号括起来,并且只包含数字和逗号

str.replaceAll("\\[{2}(.*)\\]{2}", "[$1]");
您可以使用:

String replaced = str.replaceAll("([]\\[]){2,}", "$1");

Live Demo:调用data.substring1,data.length-1不是更容易吗?@Barend,那将是-1,第二个参数是独占的。@Max yep,这里有一个off by one错误,现在已更正。我想指出的是,Regex无法处理括号匹配。。但是如果你不匹配括号,那么它会匹配fine@songyy例如你不知道你在说什么