我想知道是否有人可以帮助我弄清楚如何解析具有以下格式的字符串:
;field1-field2-fieldN;field1-field2-fieldN;
每条记录均以“;”分隔记录中的每个字段均以“-”分隔。复杂的是各个字段可能包含转义分隔符,例如“\;”或者 ”-”。这导致我下面的简单解析代码失败。所以我想做的是提出与分隔符匹配但不匹配转义分隔符的正则表达式。
我的正则表达式知识不是那么好,但我期望必须有一种方法将“([^\;])”和“([;])”组合起来才能得到我所需要的。
public static List<ParsedRecord> parse(String data) {
List<ParsedRecord> parsedRecords = new List<ParsedRecord>();
String[] records = data.split(";");
for (String record : records) {
String[] fields = data.split("-");
parsedRecords.add(new parsedRecord(fields));
}
return parsedRecords;
}
首先十分感谢。
您也许可以像这样细化与 split 一起使用的正则表达式:
split("[^\\];")
分裂任何“;”但如果前面有一个“\”则不会。破折号也是如此:
split("[^\\]-")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)