在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例如你不知道你在说什么