Thread Teilstring zurückgeben
(9 answers)
Opened by maxritti at 2012-04-21 10:33
Hi,
erweiter den Regex entsprechend Deiner Vorgabe: Code (perl): (dl
)
1 2 3 4 5 6 # not tested my $str='P=HierStehtIrgendwas,I=NocheinText'; if( $str=~/P=(.+?),I=(.+?)$/ ) { print "P-VAL = $1\n"; print "I-VAL = $2\n"; } Aber wenn die Teilstrings für P und I in umgekehrter Reihenfolge auftauchen, gibt es keinen Match (I=bla,P=blubb). Wenn zwischen den beiden andere Teilstrings auftauchen, gibt es auch keinen Match (P=bla,Q=ups,I=blubb). <edit: siehe Antwort von Guifreund> Warum muss das eigentlich unbedingt mit Regex erfolgen? Mit split() könnte das elegant erfolgen: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 # untested my $str='P=HierStehtIrgendwas,I=NocheinText'; # long way (with room for further checks (defined, valid values, ...) my %data; for my $pair ( split /,/, $str ) { my ( $key, $value ) = split /=/, $pair; $data{$key} = $value; } # if you are sure, that data in $str is always valid my %data = split /[=,]/, $str; Danach stehen die Informationen im Hash %data zur Verfügung. Last edited: 2012-04-23 12:42:43 +0200 (CEST) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |