dedlfix: RegExp: Zahlen in allen möglichen Varianten

Beitrag lesen

Hi!

dafuer gehoert die maskierung an den *slash*.
Nein, das muss auch nicht. Er hat ja = als Delimiter.

mein RegExp-tester meckert den ausdruck ohne maskierten
slash in der zeichenklasse trotzdem an - mmh?

Der geht vielleicht davon aus, dass / der Delimiter für den gesamten Ausdruck ist. In dem Fall, muss ein / auch innerhalb einer Zeichenklasse maskiert werden, anderenfalls nicht.

var_dump(preg_match('/foo[bar/]/', 'foo/'));  
var_dump(preg_match('/foo[bar\/]/', 'foo/'));  
var_dump(preg_match('#foo[bar/]#', 'foo/'));

Die erste Zeile ergibt eine Fehlermeldung ("Unknown modifier ']'" und false als Rückgabe), die beiden anderen Zeilen nicht. (Ergebnis ist jeweils 1 (eine Fundstelle)).

der gesamte ausdruck, so wie ich ihn vorhin gepostet habe, matched nur mit dieser maskierung alle von Louis gegebenen beispiele.

var_dump(preg_match('=[0-9]{1,4}[,./][0-9]{1,3}=', '...'));

So passt das auf alle Beispiele.

Lo!