C#-Aufteilung regulärer Ausdrücke: Umgang mit Kommas in Zeichenfolgen in Anführungszeichen
Die standardmäßige kommabasierte Zeichenfolgenaufteilung in C# schlägt fehl, wenn Kommas in zitiertem Text verwendet werden. Reguläre Ausdrücke bieten eine robuste Lösung.
Erwägen Sie, die Zeichenfolge „('ABCDEFG', 123542, 'XYZ 99,9')“ in ihre drei Bestandteile aufzuteilen: 'ABCDEFG', 123542 und 'XYZ 99,9'.
Der folgende reguläre Ausdruck identifiziert Kommas außerhalb zitierter Abschnitte:
<code class="language-csharp">",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Dieser Ausdruck stellt sicher, dass nur Kommas, denen keine gerade Anzahl einfacher Anführungszeichen vorangestellt ist (was auf einen geschlossenen Abschnitt in Anführungszeichen hinweist), als Trennpunkte verwendet werden.
So verwenden Sie es mit Regex.Split
:
<code class="language-csharp">string inputString = "('ABCDEFG', 123542, 'XYZ 99,9')"; string[] splitString = Regex.Split(inputString, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Das splitString
-Array enthält dann:
splitString[0]
= 'ABCDEFG'splitString[1]
= 123542splitString[2]
= 'XYZ 99,9'Dieser Ansatz für reguläre Ausdrücke teilt Zeichenfolgen präzise auf und bewahrt die Datenintegrität, selbst wenn Kommas in Teilzeichenfolgen in Anführungszeichen vorkommen.
Das obige ist der detaillierte Inhalt vonWie kann ich eine durch Kommas getrennte Zeichenfolge in C# aufteilen und dabei Kommas in Anführungszeichen ignorieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!