我有一个像这样的字符串
s="abc, 3rncd (23uh, sdfuh), 32h(q23q)89 (as), dwe8h, edt (1,wer,345,rtz,tr t), nope";
我想把它拆分成那些字符串
String[] parts={"abc", "3rncd (23uh, sdfuh)", "32h(q23q)89 (as)", "dwe8h", "edt (1,wer,345,rtz,tr t)", "nope"};
如果我简单地调用 s.split(",")
那么在修剪之后我会得到不同的结果,因为在其中一些字符串中,例如 "3rncd (23uh, sdfuh) "
还有一个逗号。但我不想在括号中加逗号。有解决这个问题的优雅方法吗?
最佳答案
假设 (
和 )
没有嵌套和未转义。您可以使用拆分使用:
String[] arr = input.split(",(?![^()]*\\))\\s*");
,(?![^()]*\))
将匹配一个逗号,如果它后面没有跟一个非括号文本和 )
,因此忽略(
和 )
中的逗号。
关于java - 拆分由逗号分隔的字符串,而不考虑括号中的逗号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34660285/