Trennzeichen beim Teilen von Zeichenfolgen in C# beibehalten
Oft müssen Sie eine Zeichenfolge mithilfe bestimmter Trennzeichen aufteilen, diese Trennzeichen möchten Sie aber auch im resultierenden Array beibehalten. Dieser Artikel demonstriert eine zuverlässige Methode in C# unter Verwendung regulärer Ausdrücke.
Die Lösung: Reguläre Ausdrücke
Die Regex.Split
-Methode von C# bietet in Kombination mit einem clever gestalteten regulären Ausdruck die Lösung. Der Schlüssel liegt in der Verwendung positiver Lookbehind-Behauptungen. Ein positiver Lookbehind stellt sicher, dass ein Muster vor der aktuellen Position vorhanden ist, ohne dieses Muster in die Übereinstimmung selbst einzubeziehen.
Muster für reguläre Ausdrücke:
Dieses Muster findet Trennzeichen (in diesem Beispiel Kommas, Punkte und Semikolons) und stellt gleichzeitig sicher, dass sie in der Ausgabe verbleiben:
<code class="language-csharp">(?<=(?:[,.;]))</code>
(?<=...)
: Dies ist eine positive Look-behind-Behauptung.(?:[,.;])
: Dies ist eine nicht erfassende Gruppe, die einem Komma, einem Punkt oder einem Semikolon entspricht.Codebeispiel:
Lassen Sie uns mit Code veranschaulichen:
<code class="language-csharp">using System.Text.RegularExpressions; // ... other code ... string originalString = "This,is,a,comma,separated,string."; string[] parts = Regex.Split(originalString, @"(?<=(?:[,.;]))"); // parts array will contain: // ["This",",","is",",","a",",","comma",",","separated",",","string","."] </code>
Der reguläre Ausdruck teilt die Zeichenfolge an den Punkten unmittelbar nach jedem Trennzeichen. Da das Trennzeichen selbst nicht in der Übereinstimmung enthalten ist, bleibt es im resultierenden Array erhalten.
Ausgabe:
Die Ausgabe zeigt, dass die ursprüngliche Zeichenfolge geteilt ist und jedes Trennzeichen als separates Element im resultierenden Array enthalten ist. Der positive Lookbehind stellt sicher, dass Trennzeichen Teil der Aufteilung sind, ohne in die Zeichenfolgensegmente absorbiert zu werden.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Zeichenfolge in C# aufteilen und dabei die Trennzeichen beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!