只有在括号

时间:2016-05-07 17:08:17

标签: java regex

我有一个这样的字符串:

String str = "[a,b,c,d],[1,2,3,4],[a,gf,d,cvb],[4,3,2,1]";

我想将这个字符串拆分为四个部分,如下所示:

  

[A,B,C,d]
  [1,2,3,4]
  并[a,GF,d,CVB]
  [4,3,2,1]

我试过了:

List<String> splitWords = Arrays.asList(str.split("\\],\\["));

当我使用它时,我得到以下字符串:

  

[A,B,C,d
  1,2,3,4
  一,GF,d,CVB
  4,3,2,1]

在这种情况下,我还会删除逗号旁边的括号,但我不想这样做。我的问题的正则表达式是什么?

2 个答案:

答案 0 :(得分:0)

试试这个:

    List<String> splitWords = Arrays.asList(str.split("],"));
    for(int i = 0; i < splitWords.size()-1; i++)
        splitWords.set(i, splitWords.get(i) + "]");

答案 1 :(得分:0)

这个正则表达式可以做你想要的:

<强> “[(。*)〕”

实施例

String str = "[a,b,c,d],[1,2,3,4],[a,gf,d,cvb],[4,3,2,1]";
Pattern logEntry = Pattern.compile("\\[(.*?)\\]");
Matcher matchPattern = logEntry.matcher(str);
while (matchPattern.find()) {
    System.out.println("[" + matchPattern.group(1) + "]");
}

将打印:

  

[a,b,c,d]

     

[1,2,3,4]

     

[a,gf,d,cvb]

     

[4,3,2,1]

这就是你要找的......