Christian Kruse: Regex, wie gehts?

Beitrag lesen

Hallo,

$k =~ s/^(0*)[3456]/${1}0/;
Danke.

Kannst du mir auch sagen, wieso es funktioniert?

Sorry, ich dachte, das waere klar. Nunja, statt '3|4|5|6' kannst du auch eine
Zeichenklasse verwenden. Die Oder-Zeichen sind IMHO nur sinnvoll, wenn man eine
Alternative mit mehr als einem Zeichen haben moechte. Das '${1}' ist ein
"Feature" von Perl (andere werden sagen, es versaut den Programmierstil): man
kann Variablen auch mit ${name} anreden. Das fuehrt in normalen Faellen zu
Problemen in Verbindung mit 'use strict', aber in diesem Fall geht das, weil
die Variable ($1) schon definiert ist.

Gruesse,
 CK