我看过很多例子,但没有得到预期的结果。

给定一个字符串:

"manikanta, Santhosh, ramakrishna(mani, santhosh), tester"

我想得到String数组,如下所示:
manikanta,
Santhosh,
ramakrishna(mani, santhosh),
tester

我尝试了以下正则表达式(从另一个示例中得到):
"(\".*?\"|[^\",\\s]+)(?=\\s*,|\\s*$)"

最佳答案

这可以做到这一点:

String[] parts = input.split(", (?![^(]*\\))");

它使用否定的前瞻断言下一个方括号char不是圆括号,并产生:
manikanta
Santhosh
ramakrishna(mani, santhosh)
tester

根据您的问题,期望的输出将保留尾随逗号,我认为这是一个疏忽,但是如果您确实希望保留逗号:
String[] parts = input.split("(?<=,) (?![^(]*\\))");

产生的结果相同,但尾随逗号完整:
manikanta,
Santhosh,
ramakrishna(mani, santhosh),
tester

10-07 23:49