2014-02-27 10 views
5

Ich versuche Regex.SPlit zu verwenden, um eine a-Zeichenfolge zu teilen, um alle seinen Inhalt einschließlich der Trennzeichen, die ich verwende, zu behalten. Die Zeichenfolge ist ein mathematisches Problem. Zum Beispiel 5 + 9/2 * 1-1. Ich habe es funktioniert, wenn die Zeichenfolge ein + Zeichen enthält, aber ich weiß nicht, wie Sie mehr als eins zur Trennzeichenliste hinzufügen. Ich habe online mehrere Seiten angesehen, aber alles, was ich versuche, gibt mir Fehler. Hier ist der Code für die Regex.Split Linie Ich habe: (Es ist für das Plus arbeitet, Jetzt muss ich es auch tun -, * und/Regex.Split-Befehl in C#

string[] everything = Regex.Split(inputBox.Text, @"(\+)"); 

Antwort

3

Verwenden eine Zeichenklasse eine der anzupassen. mathematische Operationen: [*/+-]

string input = "5+9/2*1-1"; 
string pattern = @"([*/+-])"; 
string[] result = Regex.Split(input, pattern); 

bewusst sein, dass Charakterklassen Bereiche ermöglichen, wie [0-9], die aus einer Ziffer entspricht 0 bis 9. Daher zufällige Bereiche zu vermeiden, können Sie die - oder legen Sie es entweder entkommen der Anfang oder das Ende der Zeichenklasse

+0

Die Erfassung Gruppe ist hier nicht notwendig? – hwnd

+0

@hwnd Die Capture-Gruppe ist notwendig, um die Trennzeichen als Teil des Split-Ergebnisses beizubehalten, andernfalls würden sie ausgeschlossen. Ich habe eine verwandte Antwort hier: http://Stackoverflow.com/a/2485044/59111 –

+0

Ty Ich werde das ausprobieren, wenn ich heute Abend eine Chance bekomme. Wahrscheinlich wird es funktionieren. Vielen Dank – Stc5097