我需要从字符串中删除所有[
和]
字符,但第一个和最后一个实例除外。
我在SO中寻找了很多解决方案,但无法解决这个具体问题。
输入字符串可以采用以下格式:
[foo:[foo, foo2], bar:[bar]]
我需要它:
[foo:foo, foo2, bar:bar]
我试过了,但正则表达式匹配[
之前的字符:
([^\[])(\[|\])
提前感谢您的帮助!
答案 0 :(得分:1)
总结一下,非常感谢@thanopi57首先实施我在评论中建议的内容: 蛮力,没有正则表达式解决方案
String input = "[foo:[foo, foo2], bar:[bar]]";
String newInput = new StringJoiner("").add("[").
add(input.replaceAll("[\\[\\]]", "")).add("]").toString();
System.out.println(newInput);
答案 1 :(得分:0)
可以试试这个:
String str = "[foo:[foo, foo2], bar:[bar]]";
return str.replaceAll("(?<!])]", "").replaceAll("(?<=:)\\[", "");
(?<!])]
是一个负面的后瞻性,]
字符前面没有另一个]
(?<=:)\[
是一个积极的后视,[
字符前面有: