java - 仅当字符串位于括号之间时才用逗号分割字符串

标签 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
a,gf,d,cvb
4,3,2,1]

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

最佳答案

这个正则表达式可以做你正在寻找的事情:

“[(.*?)]”

示例:

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]

这就是您正在寻找的...

关于java - 仅当字符串位于括号之间时才用逗号分割字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37091368/

相关文章:

java - 无法添加时间戳

创建 scanf 以格式化文本文件

java - 关于 Java 中的双重输入的困惑

java - javax.swing 上的 NoClassDefFoundError

javascript - 提取中的 Imacros Javascript Eval 删除部分文本

c# - 正则表达式获取字符串中的十进制值

regex - 使用正则表达式从 Google BigQuery 中的字符串中提取数字

python - ("", string) 有多个空格时如何重新拆分?

java - 为什么在将对象类型更改为泛型后,我仍然能够将任何对象添加到具有原始类型引用类型的列表中?

java - 无法在Debian上安装默认的jdk包