Ich habe gerade einen Regex für die Verwendung mit der PHP-Funktion preg_match
geschrieben, der den folgenden Teil enthält:
[\w-.]
Um jedes Wortzeichen, sowie einen Minuszeichen und den Punkt, abzugleichen. Während es scheinbar in preg_match funktioniert, habe ich versucht, es in ein Hilfsprogramm namens Reggy einzufügen und es beschwert sich über "Leerer Bereich in Zeichenklasse". Versuch und Irrtum haben mir gezeigt, dass dieses Problem durch das Escapen des Minuszeichens gelöst wurde, wodurch der Regex in
[\w\-.]
umgewandelt wurde.
Da das Original in PHP zu funktionieren scheint, frage ich mich, warum ich das Minuszeichen escapen sollte oder nicht, und - da der Punkt auch ein Zeichen mit Bedeutung in PHP ist - warum ich den Punkt nicht escapen müsste. Liegt es daran, dass das von mir verwendete Hilfsprogramm unsinnig ist, dass es mit einem anderen Regex-Dialekt arbeitet oder dass mein Regex wirklich falsch ist und ich nur Glück habe, dass preg_match mir damit durchgehen lässt?