次のようなCSV(カンマ区切り)ファイルから行を解析したい:
Bosh,Mark,mark@gmail.com,"3, Institute","83, 1, 2",1,21
ファイルを解析する必要があり、アポストロフィ間のコンマの代わりに、次のように「;」を使用します。
Bosh,Mark,mark@gmail.com,"3; Institute","83; 1; 2",1,21
次のJavaコードを使用していますが、うまく解析できません:
Pattern regex = Pattern.compile("(\"[^\\]]*\")");
Matcher matcher = regex.matcher(line);
if (matcher.find()) {
String replacedMatch = matcher.group();
String gr1 = matcher.group(1);
gr1.trim();
replacedMatch = replacedMatch.replace(",", ";");
line = line.replace(matcher.group(), replacedMatch);
}
出力は次のとおりです。
Bosh,Mark,mark@gmail.com,"3; Institute";"83; 1; 2",1,21
誰もこれを修正する方法を知っていますか?