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
Susan SarandonOriginal
2024-12-23 17:08:14783Durchsuche

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(",(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)");

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!

Stellungnahme:
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