有没有办法使用Java String.split(regexp)
拆分引号内的字符串,而不是获取引号?
我必须处理的字符串如下所示。我无法控制格式,字符串的数量也是可变的:
"strA" : "strB" : "strC" : "strD",
"strE" : "strF" : "strG",
注意:包含空格,每行都单独处理。 所以我想得的是一个包含所有字符串的数组。
我可以使用replaceAll
去除引号,空格和逗号,然后拆分冒号:
line = line.replaceAll(/(\"|,\\s+)/,"");
usrArray = line.split(":");
但我想用一个正则表达式做到这一点。
答案 0 :(得分:1)
这应该可以解决问题。
usrArray = line.split("(\" : \")|(\",?)");
首先查看" : "
。如果它没有找到它将查找边缘情况,"
和",
。如果您还需要它来搜索换行符,请使用此正则表达式。
usrArray = line.split("(\" : \")|(\",?\n?)");