Felix Riesterer: Regular Expression

Beitrag lesen

Liebes Kuchenstück,

Du scheinst Backslashes escapen zu müssen... Warum?

^\s*([-\+])?(\d+)?(\.-,)?\s*$

  • Was sollen der (doppelte) Backslash in der eckigen Klammer? [-+] bedeutet "ein Zeichen, das ein '-' oder ein '+' ist", da braucht es keine Backslashes.
  • Und warum escapest Du die eckige Klammer in der dritten runden Klammer? Das ergibt für mich keinen Sinn!
  • Innerhalb einer eckigen Klammer bedeutet der Punkt nicht mehr "irgendein Zeichen", sondern nur noch "ein Punkt", muss also auch nicht escaped werden. Oder soll auch das Zeichen "" gematched werden? Dann musst Du es hier - wie sonst überall bei Dir auch - ebenso escapen!

Ich vereinfache mal eben Dein Suchmuster:
^.* ([-+])?(\d+)?(.-,)? .*$

Dieses Suchmuster sagt (nach meinem Verständnis): In einem String gibt es nach einem Leerzeichen vielleicht ein "+" oder "-", eventuell beliebig viele Ziffern, vielleicht ein ".", ein "-" oder ein ",", dem sich (wenn es denn da ist) beliebig viele Ziffern anschließen, gefolgt von einem Leerzeichen.

Sei doch bitte so gut und poste die komplette Codezeile, in der Dein Suchmuster enthalten ist, damit man sehen kann, in welcher Sprache Du schreibst, und warum hier alle Backslashes escaped werden müssen!

Liebe Grüße aus Ellwangen,

Felix Riesterer.