Heim > Backend-Entwicklung > C++ > Wie kann C# Regex Zeichenfolgen mit Kommas in Anführungszeichen teilen?

Wie kann C# Regex Zeichenfolgen mit Kommas in Anführungszeichen teilen?

Mary-Kate Olsen
Freigeben: 2025-01-07 21:10:45
Original
134 Leute haben es durchsucht

How Can C# Regex Split Strings with Commas Inside Quotes?

C#-Zeichenfolgenaufteilung für reguläre Ausdrücke: Kommas außerhalb von Anführungszeichen

Der Umgang mit Zeichenfolgen, die eingebettete Kommas enthalten, kann mit herkömmlichen kommabasierten Aufteilungsmethoden eine Herausforderung darstellen. Dieser Artikel zeigt eine Lösung mit C# und regulären Ausdrücken zum Teilen einer Zeichenfolge, die Kommas enthält, die möglicherweise in Anführungszeichen eingeschlossen sind.

Problemstellung:

Betrachten Sie die folgende Zeichenfolge, die einen SQL-Codeausschnitt darstellt:

<code>('ABCDEFG', 123542, 'XYZ 99,9')</code>
Nach dem Login kopieren

Das Ziel besteht darin, diese Zeichenfolge in drei verschiedene Teile aufzuteilen:

  1. 'ABCDEFG'
  2. 123542
  3. 'XYZ 99,9'

Die Herausforderung entsteht, weil das Komma im dritten Parameter („XYZ 99,9“) nicht als Trennzeichen betrachtet werden sollte.

Lösung für reguläre Ausdrücke:

Um dieses Problem zu lösen, können wir einen regulären Ausdruck verwenden, der nur dann mit einem Komma übereinstimmt, wenn ihm eine gerade Anzahl einfacher Anführungszeichen vorangestellt ist. Dieser Modus stellt sicher, dass Kommas in Anführungszeichen nicht getrennt werden.

<code>",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Nach dem Login kopieren

Verwendung:

<code class="language-csharp">var result = Regex.Split(sampleString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Nach dem Login kopieren

Erklärung:

  • "," entspricht einem beliebigen Komma in der Zeichenfolge.
  • (?=( startet eine Lookahead-Behauptung.
  • (?:[^']'[^']')* entspricht einer beliebigen Anzahl von Sequenzen nicht einfacher Anführungszeichen, gefolgt von einem einfachen Anführungszeichen.
  • [^']* entspricht einer beliebigen Anzahl nicht einfacher Anführungszeichen.
  • $ entspricht dem Ende der Zeichenfolge.

Ausgabe:

Die Ausgabe des Ergebnisarrays lautet wie folgt:

<code>{"'ABCDEFG'", "123542", "'XYZ 99,9'"}</code>
Nach dem Login kopieren

Dies demonstriert die erfolgreiche Aufteilung einer Zeichenfolge basierend auf Kommas außerhalb von Anführungszeichen, während die in Anführungszeichen gesetzten Argumente intakt bleiben.

Das obige ist der detaillierte Inhalt vonWie kann C# Regex Zeichenfolgen mit Kommas in Anführungszeichen teilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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