关于正则表达式"a;b;c;d";e;f

现有字符串如下所示"a;b;c;d";e;f,我想用java String的split放发将该字符串分割为"a;b;c;d"、e、f这样的形式。也就是说忽略双引号之间的分号,请问正则应该怎么写?

String test = "F;SD;\"a;b;c;d\";\"a;6Y;d\";e;f";
List<String> stringList = new ArrayList<String>();

Pattern p = Pattern.compile("\".*?\"");
Matcher m = p.matcher(test);

StringBuffer sb = new StringBuffer();  
while(m.find()){
    stringList.add(m.group());
    m.appendReplacement(sb, "");  
}
m.appendTail(sb);

String[] ss = sb.toString().split(";");
for (int i = 0; i < ss.length; i++) {
    if(!ss[i].equals("")){
        stringList.add(ss[i]);
    }
}

for (int i = 0; i < stringList.size(); i++) {
    System.out.println(stringList.get(i));
}

这个直接字符串查找,解析一下就可以了