Thread Regexp: Ersetzungsausdruck mitbenutzen
(25 answers)
Opened by #Kein Kommentar at 2008-07-12 21:22 KurtZ+2008-07-13 16:18:34-- In der Tat nützlich, wenn man Teilintervalle in Schleifen greifen möchte. Die Perldoc dazu sieht eher nach Spezialistentum bei Textprocessing und Sed-Emulation aus, aber man kann es viel allgemeiner anwenden: Ich hab gleichmal versucht es zu emulieren mit einer sub "episode" Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 #!/usr/bin/perl use Data::Dumper; @in=qw( ich du er sie es wir ihr sie sonstwas); $\="\t"; print; for (@in,@in) { print; print "1: $_" if /wir/ .. /sie/; print "2: $_" if ($_ eq "wir") .. ($_ eq "sie"); print "3: $_" if episode ( ($_ eq "wir") , ($_ eq "sie") , "plural3" ); print "4: $_" if episode ( scalar(/wir/) , scalar(/sie/), "plural4" ); # print "5: $_" if episode ( /wir/ , /sie/, "plural5" ); print "\n"; } { my %flipflop; sub episode ($$$) { my ($start,$end,$label)=@_; # print Dumper \@_ if @_ != 3; $flipflop{$label}=1 if $start; my $return=$flipflop{$label}; $flipflop{$label}=0 if $end; return $return; } } __END__ ich du er sie es wir 1: wir 2: wir 3: wir 4: wir ihr 1: ihr 2: ihr 3: ihr 4: ihr sie 1: sie 2: sie 3: sie 4: sie sonstwas ich du er sie es wir 1: wir 2: wir 3: wir 4: wir ihr 1: ihr 2: ihr 3: ihr 4: ihr sie 1: sie 2: sie 3: sie 4: sie sonstwas Beispiel 5 funktioniert nicht wie gewollt, weil m// im Listenkontext evaluiert wird. Ich muss umständlich Skalarenkontext erzwingen, da hilft leider auch kein Protyping. Hat jmd vielleicht ne gute Idee? TMTOWTDYOG (there's more than one way to dig your own grave)
|