Heim >Backend-Entwicklung >C++ >Wie kann ich eine durch Kommas getrennte Zeichenfolge in C# aufteilen und dabei Kommas in Anführungszeichen ignorieren?

Wie kann ich eine durch Kommas getrennte Zeichenfolge in C# aufteilen und dabei Kommas in Anführungszeichen ignorieren?

Linda Hamilton
Linda HamiltonOriginal
2025-01-07 21:29:41932Durchsuche

How Can I Split a Comma-Separated String in C# While Ignoring Commas Within Quotes?

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] = 123542
  • splitString[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!

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