C # advanced String.Split

8

Ich habe eine ähnliche Zeichenfolge wie diese:

  

Der Junge sagte zu seiner Mutter: "Kann ich?   Süßigkeiten haben? "

Wenn ich eine normale String.Split mache, bekomme ich:

%Vor%

Ich möchte ein Array wie folgt:

%Vor%

Offensichtlich könnte ich einfach Zeichen für Zeichen durchlaufen und verfolgen, ob ich in einer Zeichenfolge bin oder nicht und all das ... aber gibt es einen besseren Weg? Mit Regexs vielleicht?

    
Entity 04.06.2011, 22:27
quelle

2 Antworten

9
___ tag123c ___ C # (sprich "Cis") ist eine objektorientierte Programmiersprache auf hohem Niveau, die für die Erstellung einer Vielzahl von Anwendungen entwickelt wurde, die auf dem .NET Framework (oder .NET Core) ausgeführt werden. C # ist einfach, leistungsfähig, typsicher und objektorientiert. ___ tag123arrays ___ Ein Array ist eine geordnete Datenstruktur, die aus einer Sammlung von Elementen (Werten oder Variablen) besteht, die jeweils durch einen oder mehrere Indizes identifiziert werden. Wenn Sie nach bestimmten Varianten von Arrays fragen, verwenden Sie stattdessen diese verwandten Tags: [Vektor], [Arraylist], [Matrix]. Wenn Sie dieses Tag verwenden, markieren Sie die Frage auch mit der verwendeten Programmiersprache, es sei denn, Ihre Frage bezieht sich nicht auf eine bestimmte Programmiersprache. ___ answer6239869 ___

Hängt etwas von Ihren Anforderungen ab. Z.B. müssen Sie AAA "BBB (keine Leerzeichen) als Schilderwort oder zwei Wörter behandeln? Wenn AAA" BBB ist ein einzelnes Wort, und "startet nur ein qouted-Feld nach dem Trennzeichen - das sieht aus wie CSV-Parser. Natürlich hat CSV andere Regeln, wie doppelte qoutes, um wörtliches Zitat zu bedeuten, usw. - aber Sie müssten einige ähnliche Regeln auch definieren.

So können Sie jeden Open-Source-CSV-Parser anpassen oder prüfen, ob z. Microsoft.VisualBasic.FileIO.TextFieldParser funktioniert für Sie

%Vor%     
___ answer6239886 ___

Wie wäre es mit dem Finden aller Übereinstimmungen dieser Regex:

%Vor%     
___ qstntxt ___

Ich habe eine ähnliche Zeichenfolge wie diese:

  

Der Junge sagte zu seiner Mutter: "Kann ich?   Süßigkeiten haben? "

Wenn ich eine normale %code% mache, bekomme ich:

%Vor%

Ich möchte ein Array wie folgt:

%Vor%

Offensichtlich könnte ich einfach Zeichen für Zeichen durchlaufen und verfolgen, ob ich in einer Zeichenfolge bin oder nicht und all das ... aber gibt es einen besseren Weg? Mit Regexs vielleicht?

    
___ qstnhdr ___ C # advanced String.Split ___ tag123split ___ Verwenden Sie dieses Tag für Fragen zum Trennen eines Elements (z. B. einer Zeichenfolge) in Teile, oft durch ein Trennzeichen oder einen regulären Ausdruck. ___
MRAB 04.06.2011, 22:32
quelle
2

Hängt etwas von Ihren Anforderungen ab. Z.B. müssen Sie AAA "BBB (keine Leerzeichen) als Schilderwort oder zwei Wörter behandeln? Wenn AAA" BBB ist ein einzelnes Wort, und "startet nur ein qouted-Feld nach dem Trennzeichen - das sieht aus wie CSV-Parser. Natürlich hat CSV andere Regeln, wie doppelte qoutes, um wörtliches Zitat zu bedeuten, usw. - aber Sie müssten einige ähnliche Regeln auch definieren.

So können Sie jeden Open-Source-CSV-Parser anpassen oder prüfen, ob z. Microsoft.VisualBasic.FileIO.TextFieldParser funktioniert für Sie

%Vor%     
Michael 04.06.2011 22:50
quelle

Tags und Links