java在引号内拆分字符串

时间:2018-03-30 20:58:15

标签: java regex string split

有没有办法使用Java String.split(regexp)拆分引号内的字符串,而不是获取引号? 我必须处理的字符串如下所示。我无法控制格式,字符串的数量也是可变的:

"strA" : "strB" : "strC" : "strD",
"strE" : "strF" : "strG",

注意:包含空格,每行都单独处理。 所以我想得的是一个包含所有字符串的数组。

我可以使用replaceAll去除引号,空格和逗号,然后拆分冒号:

line = line.replaceAll(/(\"|,\\s+)/,"");
usrArray = line.split(":");

但我想用一个正则表达式做到这一点。

1 个答案:

答案 0 :(得分:1)

这应该可以解决问题。

usrArray = line.split("(\" : \")|(\",?)");

首先查看" : "。如果它没有找到它将查找边缘情况,"",。如果您还需要它来搜索换行符,请使用此正则表达式。

usrArray = line.split("(\" : \")|(\",?\n?)");