Hallo perl_anfänger,
ich dachte, folgender Ausdruck
/(..)4$1/
erkennt alle "strings", die wie folgt aufgebaut sind:AA4AA
AB4ABalso 2 Zeichen gefolgt von einer 4 gefolgt von den ersten
beiden
zeichen, es wird aber auch
hh4asdfasdf
erkannt (als true gemeldet)warum?
$1 ist erst nach dem Match gefuellt. Zu dem Zeitpunkt, wo
geprueft wird, ist $1 undef und damit implizit ein
Leerstring. Du suchst 'Backreferences':
/(..)4\1/
Mein Lieblingsausdruck in dieser Art ist ueberigens
s/(.)\1{2,}/$1/g;
Damit kommt man diesen 'HIIIIIILLLLLFFFEEEE!!!!!'-Leuten sehr
schnell bei :)
kann ich die $1 nicht auf für diesen zweck verwenden??
Nein, Erklaerung siehe oben.
Gruesse,
CK