Heim >Java >javaLernprogramm >Wie teile ich durch Kommas getrennten Text mit Anführungszeichen mithilfe regulärer Ausdrücke auf?
Durch Kommas getrennten Text mit Anführungszeichen aufteilen
In bestimmten Szenarien, in denen Textdaten durch Kommas getrennte Werte enthalten, ist es notwendig, die Daten aufzuteilen basierend auf Kommas. Es treten jedoch Herausforderungen auf, wenn die Daten Zeichenfolgen mit eingebetteten Kommas in Anführungszeichen enthalten.
Um dieses Problem zu beheben, besteht eine vielseitige Lösung darin, einen regulären Ausdruck zu verwenden, der speziell auf Kommas abzielt, die sich außerhalb von doppelten Anführungszeichen befinden:
str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
Diese Regex zerlegen:
Alternativ kann das Dieselbe Regex kann mit dem Modifikator (?x) in ein besser lesbares Format geschrieben werden, wodurch mehrzeilige Ausdrücke verbessert werden können Lesbarkeit:
String[] arr = str.split("(?x) " + ", " + // Split on comma "(?= " + // Followed by " (?: " + // Start a non-capture group " [^\"]* " + // 0 or more non-quote characters " \" " + // 1 quote " [^\"]* " + // 0 or more non-quote characters " \" " + // 1 quote " )* " + // 0 or more repetition of non-capture group (multiple of 2 quotes will be even) " [^\"]* " + // Finally 0 or more non-quotes " $ " + // Till the end (This is necessary, else every comma will satisfy the condition) ") " // End look-ahead );
Diese Lösung löst effektiv das Problem der Aufteilung von durch Kommas getrenntem Text und bewahrt gleichzeitig die Integrität von Zeichenfolgen, die Kommas in doppelten Anführungszeichen enthalten.
Das obige ist der detaillierte Inhalt vonWie teile ich durch Kommas getrennten Text mit Anführungszeichen mithilfe regulärer Ausdrücke auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!