es ist ein RegEx der das gewünschte macht (verändert aber nicht den String sondern liefert neuen zurück, auf Rückgabewert achten)
ohne RegEx zu kennen brauchst du nicht weiter drüber nachdenken,
wenn es so fies läuft ist es auch nicht mehr weit bis zu einem Komma mitten im Text, durch Anführungszeichen für höhere Logik gerettet,
- evtl. weitere innere Anführungszeichen, was Interpretation teils unmöglich machen könnte (*), auch für Excel, vielleicht nicht realistisch
weitaus aufwendiger als bisher, aber der sicherste allgemeine Ansatz ist dann, zeichenweise zu parsen:
große Schleife über alle Zeichen einzeln, nach und nach durch weitere eingelesene Zeilen gefüttert,
Status der Verarbeitung, angefangenes gelesenen Wert, fertige Werte bisher in der Zeile usw. in Variablen merken
am Anfang Ruhestatus zwischen Zeilen sowie zwischen Einträgen,
Zeichen Normalo → aktuellen Wert anfangen bzw. ergänzen
Zeichen Anführungszeichen
→ wenn am Anfang, dann speziell merken dass aktueller Eintrag in Anführungszeichen steht, ein boolean, ein Status,
Zeichen wahrscheinlich nicht zu merken, willst du ja löschen
→ wenn bei laufenden Wert, dann vielleicht beliebiger innerer Inhalt, könnte aber auch Ende sein, Info jedenfalls abbilden,
je nachdem danach auf Komma unterschiedlich reagieren, was teils unmöglich werden könnte (*)
Zeichen Komma, Zeilenumbruch → wenn aktueller Wert nicht in Anführungszeichen, dann gewiss Ende des Wertes, sonst komplizierter
usw., nach und nach Regeln aufstellen, meist abhängig von verschiedenen aktuellen Stati, testen
(*)
„aaa“,„bbb“,„ccc“
könnte die drei Werte aaa + bbb + ccc darstellen
oder auch nur zwei Werte: aaa","bbb sowie ccc
da sind die Regeln hoffentlich irgendwie klar, bisher habe ja auch nur ich , eingebracht 
mit Zusatzinfos wie ‚gleicher Spaltenanzahl je Zeile‘ könnte man noch etwas retten, aber schwierig