以逗号分隔的分隔字符串,不考虑方括号中的逗号
我有一个像
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*");
正则演示
,(?![^()]*\))
如果逗号后面没有非圆括号和)
,则将匹配逗号,从而忽略(
和中的逗号)
。
以上是 以逗号分隔的分隔字符串,不考虑方括号中的逗号 的全部内容, 来源链接: utcz.com/qa/399696.html