diff --git a/uk/ac/sanger/artemis/components/genebuilder/cv/AbstractCvBox.java b/uk/ac/sanger/artemis/components/genebuilder/cv/AbstractCvBox.java index 70381ab2d68ada9e2ad06b7dc8ecf6b849defab9..8a0a7f09398b10845f92d604ba65aaf3d6c860e2 100644 --- a/uk/ac/sanger/artemis/components/genebuilder/cv/AbstractCvBox.java +++ b/uk/ac/sanger/artemis/components/genebuilder/cv/AbstractCvBox.java @@ -69,30 +69,22 @@ abstract class AbstractCvBox */ protected static String getFieldIgnoreSeparator(final String fieldName, final String qualifierString) { - String[] parts = qualifierString.split("="); + String[] completeValues = qualifierString.split(";[\\S&&[^;=]]+="); StringBuffer buff = null; - for(int i=0; i<parts.length; i++) + for(int i=0; i<completeValues.length; i++) { - if(parts[i].endsWith(fieldName) && i<parts.length-1) + if(qualifierString.indexOf(fieldName+"="+completeValues[i])>-1) { if(buff == null) buff = new StringBuffer(); else buff.append("; "); - - String part = parts[i+1]; - if(i<parts.length-2) - { - int ind = part.lastIndexOf(';'); - buff.append(part.substring(0, ind)); - } - else - buff.append(part); + buff.append(completeValues[i]); } } - if(buff != null) - return buff.toString(); - return getField(fieldName, qualifierString); + if(buff == null) + return getField(fieldName, qualifierString); + return buff.toString(); } /**