2016-04-18 9 views
0

ich einfach so ein wxString Benutzereingabe überprüfen möchten überprüfen:Wie ein wxString mit regulären Ausdrücken wie diese

substring1, substring2, substring3, substringn 

Es bedeutet nur zwischen Alpha und Komma subtring. Wie das geht, bin ich neu, danke für deine Hilfe.

+0

Warum denken Sie, dass Sie dafür reguläre Ausdrücke benötigen? Warum schneidet 'wxString :: found (", ") nicht? –

Antwort

1

Werfen Sie einen Blick auf die folgenden zwei Klassen:

wxSplit

Damit kann eine Reihe von wxString (wxArrayString) basierend auf einem Trennzeichen zu erstellen. So zum Beispiel den folgenden Code:

wxSplit ("substring1, substring2, substring3, substringn", ',');

würde in einem wxArrayString Folge enthält:

substring1 
substring2 
substring3 
substringn 

Hinweis, den Raum vor den späteren Teil. Dies liegt daran, dass wxSplit nur ein einziges Zeichen annehmen kann.

wxStringTokenizer

Dies ist etwas komplexer und leistungsstark. Anpassung des Beispiels aus der Dokumentation:

wxStringTokenizer tokenizer("substring1, substring2, substring3, substringn", ","); 
while (tokenizer.HasMoreTokens()) 
{ 
    wxString token = tokenizer.GetNextToken(); 
    wxPuts (token.Trim(false)); 
} 

würde das führende Platzproblem lösen.

+1

Das Hinzufügen von Nur-Link-Antworten wird nicht empfohlen. Können Sie die Hauptpunkte zusammenfassen, warum die Verwendung dieser 2 Klassen die Frage beantwortet? – brodoll

+1

Um ehrlich zu sein, die Frage ist ziemlich vage. Jedoch habe ich die Antwort erweitert, um eine vollständigere Erklärung dessen zu geben, was die 2 Klassen tun. – iwbnwif