wxRegEx Problems



  • Hallo zusammen,

    ich versuche gerade eine Telefonnummer mit einer wxRegEx Anweisung auszulesen.

    Ich z.B. folgenden wxString der zu lesen ist :

    wxString myWxString = _T("+49[0]9621 55 88 99 20 - 3")
    

    Nun möchte ich das der gesamte string in der GetMatch-Funktion zurück gegeben wird.

    Wenn ich folgende Codezeile benutze:

    wxRegEx myReg(_T("([0-9 \\(\\)\[\\+\\-]+)"));
    

    bekomme ich folgendes Ergebnis
    +49[0
    was für diesen RegEx auch richtig ist.

    Wenn ich jetzt allerdings den Code wie folgt abändere, um ihm zu sagen das auch ']' erlaubt ist:

    wxRegEx myReg(_T("([0-9 \]\\(\\)\[\\+\\-]+)"));
    

    Bricht er beim aufruf der Funktion

    myReg.Matches(myWxString)
    

    ab.

    Hatt jemand eine Idee woran das liegen kann. Kann ich ] nicht mit einem \\ deklariern. Funktioniert ja bei \[ auch ohne Probleme.

    Thx



  • Benutzt du wxRE_ADVANCED?



  • Habe

    wxRE_EXTENDED, wxRE_ADVANCED, wxRE_DEFAULT
    getestet funktioniert bei keiner so.... Leider

    Habe das jetzt so gelößt

    wxRegEx myReg(_T("^([0-9]|\\+|\\-|\[|\]|\\(|\\)|/| ])+$"));
    

    Das überprüfen ob der String nur gültige zeichen enthält erledigt nun die
    Funktion

    wxRegEx myReg(_T("^([0-9]|\\+|\\-|\[|\]|\\(|\\)|/| ])+$"));
    
    if (myReg.Matches(numberToVerify))
    {
    	return true;
    }
    return false;
    

    So funktioniert es auf jeden Fall. Vermute mal das es irgendwo nicht möglich ist innerhalb von [ .. ] ein \\\] zu deklariern...

    Thx


Anmelden zum Antworten