Reguläre Ausdrücke verwenden, um Zeichenfolgen in C# zu teilen: Kommas in Anführungszeichen verarbeiten
In verschiedenen Szenarien wie Datenanalyse oder SQL-String-Operationen müssen Strings, die Kommas enthalten, möglicherweise mithilfe regulärer Ausdrücke aufgeteilt werden. Allerdings ergeben sich Herausforderungen, wenn Kommas innerhalb und außerhalb von Anführungszeichen stehen.
Betrachten wir die folgende Zeichenfolge:
<code>('ABCDEFG', 123542, 'XYZ 99,9')</code>
Unser Ziel ist es, diese Zeichenfolge mithilfe regulärer Ausdrücke in ihre Bestandteile zu zerlegen, um die folgende Ausgabe zu erhalten:
Der Schlüssel liegt darin, Kommas außerhalb von Anführungszeichen zu erkennen. Hierfür können wir das leistungsstarke Muster für reguläre Ausdrücke verwenden:
<code>",(?=(?:[^']*'[^']*')*[^']*$)"</code>
Lassen Sie uns dieses Muster aufschlüsseln:
"
: Entspricht einem wörtlichen Komma.
(?=(?:[^']*'[^']*')*[^']*$)
: Dies ist eine Lookahead-Behauptung, die prüft, ob auf ein Komma eine gerade Anzahl von Anführungszeichen folgt.
(?:[^']*'[^']*')*
: Gleicht eine beliebige Anzahl von Paaren einfacher Anführungszeichen mit dem Inhalt dazwischen ab. [^']*$
: Entspricht jedem Zeichen nach dem letzten Anführungszeichen, jedoch nicht einschließlich des Anführungszeichens. Durch die Verwendung dieses Musters können wir jedes Komma finden, dem eine gerade Anzahl von Anführungszeichen folgt, und so effektiv sicherstellen, dass wir die Zeichenfolge nur außerhalb der Anführungszeichen teilen.
Um diesen regulären Ausdruck zum Teilen zu verwenden, verwenden wir den folgenden C#-Code:
<code class="language-csharp">var result = Regex.Split(samplestring, ",(?=(?:[^']*'[^']*')*[^']*$)");</code>
Nach der Ausführung dieses Codes enthält result
ein Array von Zeichenfolgen, wobei jede Zeichenfolge eine Komponente der ursprünglichen Zeichenfolge darstellt und entsprechend den gewünschten Bedingungen aufgeteilt wird.
Das obige ist der detaillierte Inhalt vonWie teile ich eine Zeichenfolge in C# mithilfe von Regex auf, um Kommas in Anführungszeichen zu verarbeiten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!