如何使用Java正则表达式拆分此字符串

Aru*_*hny 1 java regex

我想拆分字符串

String fields = "name[Employee Name], employeeno[Employee No], dob[Date of Birth], joindate[Date of Joining]";
Run Code Online (Sandbox Code Playgroud)

name
employeeno
dob
joindate
Run Code Online (Sandbox Code Playgroud)

我为此编写了以下java代码,但它只打印名称,其他匹配不打印.

String fields = "name[Employee Name], employeeno[Employee No], dob[Date of Birth], joindate[Date of Joining]";

Pattern pattern = Pattern.compile("\\[.+\\]+?,?\\s*" );

String[] split = pattern.split(fields);
for (String string : split) {
    System.out.println(string);
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

谢谢

Bar*_*ers 5

这部分:

\\[.+\\]
Run Code Online (Sandbox Code Playgroud)

匹配第一个[,.+然后吞噬整个字符串(如果字符串中没有换行符),然后\\]匹配最后一个].

你需要在它之后.+放置一个不情愿?:

Pattern pattern = Pattern.compile("\\[.+?\\]+?,?\\s*");
Run Code Online (Sandbox Code Playgroud)

不应该\\]+?只是\\]