Java如何使用正则表达式移除数组中所有括号?
移除数组字符串中剩余括号的解决方案
看起来你现在的正则只处理了最外层的首尾括号,导致中间的方括号残留了。针对你需要循环处理任意大小数组的需求,这里有个简单有效的正则方案:
直接移除所有方括号
如果你想要彻底去掉所有的方括号,只保留带引号的元素,直接用匹配所有[和]的正则即可:
String result = picset.replaceAll("[\\[\\]]", "");
效果演示
拿你提供的数组字符串来说:
原输入:[["12","21","31","41"],["empty","22","32","42"],["13","23","33","43"]]
处理后会得到:"12","21","31","41","empty","22","32","42","13","23","33","43"
正则解释
[\\[\\]]是一个字符类,表示匹配[或者]这两个字符中的任意一个replaceAll会遍历整个字符串,把所有匹配到的方括号替换为空字符串,不管它们出现在什么位置,完美适配任意大小和嵌套层级的数组字符串
为什么你原来的正则不行?
你之前用的"\\[\\[\"|\"\\]\\]|"有两个问题:
- 最后多余的
|会匹配空字符串,完全没有作用,反而可能导致不必要的空替换 - 只处理了最外层的开头
[["和结尾"]],完全没管中间的],[这类方括号,所以才会残留"],["和首尾的部分括号
如果你的需求不是移除所有方括号,而是有其他格式要求,可以补充说明,但从你给出的示例来看,这个方案应该是最贴合需求的。
内容的提问来源于stack exchange,提问作者RianSki
相关产品推荐
相关产品推荐

