Cheatah: Regex

Beitrag lesen

Hi,

Das sieht also so aus, als würde der Punkt hier wirklich nur als Punkt gelten.

in einer Zeichenklasse ist dem so, ja.

"1\0" und /([0-9\.]+)/      # matcht nicht

"" ist das Escape-Zeichen, d.h. es nimmt dem folgenden "" seine Sonderbedeutung. Hier versuchst Du also (wenn man es auflöst), "1\0" auf "/([0-9.]+)/" zu matchen, was klappen sollte. Tut es das nicht, hast Du möglicherweise anderswo im Code einen Fehler.

"1\0" und /([0-9]+)/      # Fehler

Die Zeichenklasse enthält hier die Zeichen 0-9, ], +, ) und /, endet jedoch nicht.

Hier scheint der Backslash einfach weiter als Escape zu gelten und escapet die Klammer.

Korrekt.

"1\0" und /([0-9\]+)/      # Fehler

Nein, kein Fehler. Ich glaube, Du hast ein grundsätzliches Syntax-Problem.

Also alles in allem recht inkonsistent.

Eigentlich ist es bei Perl sehr einfach, im Gegensatz zu vielen anderen Sprachen, in denen man noch zusätzlich innerhalb der Quotes escapen muss etc.

Was ist jetzt also Sache und wie kann ich einen Backslash als Backslash schreiben?

"\"

Cheatah