我看过很多例子,但没有得到预期的结果。
给定一个字符串:
"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