Thread regulärer Ausdrücke: Zwei Regexp nicht dasselbe Resultat. (3 answers)
Opened by smallish at 2005-10-23 17:57

J-jayz-Z
 2005-10-23 19:09
#59157 #59157
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Ja, das stimmt schon so, wie du es sagst, aber das hast du deinenm Muster so nicht gesagt.
Das erste Muster geht bis zu einem Fragezeichen (das nach "wer") und gibt dir dann den Rest aus, bis zum Ende ($).
Das zweite Muster macht alles vom Anfang (^), bis zu nem Fragezeichen (in dem Fall das nach "ich", weil .* sehr gierig ist) und dann den Rest, bis zum Ende ($).
Das zweite Muster hätte so aussehen sollen, um es passend zu machen:
Code: (dl )
$dir =~ /^.*?\?(.*?)$/;

Das Fragezeichen nach dem * nimmt die Gierigkeit weg und matcht somit nur, bis zum ersten treffer (nach "wer")
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de

View full thread regulärer Ausdrücke: Zwei Regexp nicht dasselbe Resultat.