【发布时间】:2013-08-01 21:29:04
【问题描述】:
我想解决这个问题。
-
,逗号:拆分术语 -
"双引号:字符串值(忽略特殊字符) -
[]数组
例如:
输入:a=1,b="1,2,3",c=[d=1,e="1,2,3"]
预期输出:
a=1
b="1,2,3"
c=[d=1,e="1,2,3"]
但我无法得到以上结果。
我已经写了下面的代码:
String line = "a=1,b=\"1,2,3\",c=[d=1,e=\"1,11\"]";
String[] tokens = line.split(",(?=(([^\"]*\"){2})*[^\"]*$)");
for (String t : tokens)
System.out.println("> " + t);
我的输出是:
a=1
b="1,2,3"
c=[d=1
e="1,11"]
我需要进行哪些更改才能获得预期的输出?我应该坚持使用正则表达式还是其他解决方案更灵活、更易于维护?
【问题讨论】:
-
不要转发您的问题,尤其是在没有解释您认为有必要转发的原因的情况下。 (如果针对该问题提供的答案不充分,请编辑 原始问题而不是重新发布。)另外,不要复制并粘贴某人的代码并说您“有写”它。
-
@PaulProgrammer 是的,但请看我的回答。只要结构不是太疯狂或太灵活,正则表达式就可以工作。
-
当然,你可以做很多疯狂的事情,但这并不意味着你应该
-
再次声明,请勿转发;编辑。未能收到适合您的答案是永远重新发布的充分理由。请记住,您最初的问题甚至还没有 24 小时开放。