Thread Probleme mit $ beim Ersetzen: Emailpasswort ändern (8 answers)
Opened by in2fire at 2006-07-19 00:18

sid burn
 2006-07-19 17:31
#68249 #68249
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
[quote=renee,19.July.2006, 10:07][quote=sid burn,19.07.2006, 09:27]Ein Dollarzeichen in einer Regex hat die besondere Bedeutung das es ein Stringende oder Zeilende darstellt. Wenn du das Zeichen finden möchtest, anstatt dessen bedeutung in einer Regex zu verwenden, dann musst du wie esskar gezeigt das Dollarzeichen escapen.[/quote]
Ein Dollarzeichen hat nur am Ende des RegEx die Bedeutung "Stringende". Mittdrin ist es das Sigil einer Variable - bei /$eins/ ist eben der Skalar $eins gemeint.[/quote]
Code: (dl )
1
2
3
4
my $text = "Hallo\nWelt.\n";
if ( $text =~ m/^(.*?)$(.*)/sm ) {
print "[$1]\n[$2]\n";
}

Gibt bei mir folgendes aus:
Code: (dl )
1
2
3
4
[Hallo]
[
Welt.
]

Er hat also wie gewollt das Dollar als Zeilenendzeichen benutzt. Ob er es nun als zeilenendzeichen benutzt, oder ob er es als variable nimmt, dass muss die Regex Engine enstcheiden.
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Probleme mit $ beim Ersetzen: Emailpasswort ändern