Heim > Java > javaLernprogramm > Wie kann ich in Java durch Kommas getrennten Text aufteilen und dabei Kommas in Anführungszeichen ignorieren?

Wie kann ich in Java durch Kommas getrennten Text aufteilen und dabei Kommas in Anführungszeichen ignorieren?

Susan Sarandon
Freigeben: 2024-12-23 17:08:14
Original
835 Leute haben es durchsucht

How to Split Comma-Separated Text While Ignoring Commas Within Quotes in Java?

Durch Kommas getrennten Text aufteilen und Kommas in Anführungszeichen ignorieren

Das Parsen von Text mit durch Kommas getrennten Werten kann schwierig sein, wenn bestimmte Werte Kommas in Anführungszeichen enthalten . Die Verwendung der String.split-Methode von Java mit einem einfachen Komma-Trennzeichen führt häufig zu geteilten Werten, die diese Kommas in Anführungszeichen enthalten. Dieses Problem erfordert eine Lösung, die zwischen Kommas außerhalb und innerhalb von Anführungszeichen unterscheidet.

Die Lösung für dieses Problem liegt in regulären Ausdrücken. Der folgende Java-Codeausschnitt bietet eine umfassende Lösung:

String[] arr = str.split(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");
Nach dem Login kopieren

Dieser reguläre Ausdruck teilt die Zeichenfolge basierend auf Kommas auf, denen nicht unmittelbar eine gerade Anzahl doppelter Anführungszeichen folgt. Die detaillierte Erklärung des regulären Ausdrucks lautet wie folgt:

  • ,(?=: Teilt die Zeichenfolge in Kommas, denen ein Look-Ahead-Ausdruck folgt.
  • ( ?=(?:[^"]*"[^"]*")*[^"]*$): Der Look-Ahead-Ausdruck stellt sicher, dass auf das Komma eine gerade Anzahl von Double folgt Anführungszeichen.

    • [^"]*: Entspricht null oder mehr Zeichen, die keine Anführungszeichen sind.
    • "[^"]*": Entspricht einem Paar doppelter Anführungszeichen mit Nicht-Anführungszeichen Zeichen dazwischen.
    • *: Entspricht dem vorhergehenden Ausdruck null oder mehrmals (gerade Anzahl doppelter Anführungszeichen).
    • [^"]*$: Stellt sicher, dass der Look-Ahead-Ausdruck bis zum Ende der Zeichenfolge übereinstimmt und verhindert, dass jedes Komma die Teilung auslöst.

Durch die Verwendung dieses regulären Ausdrucks können Sie Kommas effektiv teilen. Getrennter Text, Kommas in doppelten Anführungszeichen werden ignoriert. Mit diesem Ansatz können Sie Text auf zuverlässige Weise analysieren und sicherstellen, dass die in Anführungszeichen gesetzten Werte erhalten bleiben.

Das obige ist der detaillierte Inhalt vonWie kann ich in Java durch Kommas getrennten Text aufteilen und dabei Kommas in Anführungszeichen ignorieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage