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>
Das Ziel besteht darin, diese Zeichenfolge in drei verschiedene Teile aufzuteilen:
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>
Verwendung:
<code class="language-csharp">var result = Regex.Split(sampleString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Erklärung:
Ausgabe:
Die Ausgabe des Ergebnisarrays lautet wie folgt:
<code>{"'ABCDEFG'", "123542", "'XYZ 99,9'"}</code>
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!