Regulärer Ausdruck
Klaus
- perl
Hi,
ich möchte wissen, ob in $text z.B. einer der Texte aaa, bbb, ccc, ... oder zzz enthalten ist.
Das habe ich so gemacht:
$text =~ /aaa|bbb|ccc|....|zzz/;
Wie weiß ich nun, welcher der Texte gefunden wurde?
Viele Grüße
Klaus
$text =~ /aaa|bbb|ccc|....|zzz/;
Wie weiß ich nun, welcher der Texte gefunden wurde?
Wenn der Unterschied die Abarbeitung bestimmt:
for($text){
/aaa/ and do{...} and last;
/bbb/ and do{...} and last;
#...
}
oder
my %displatch=(
aaa=>sub{},
bbb=>sub{},
ccc=>sub{ return 42 },
);
$text =~ /(aaa|bbb|ccc|....|zzz)/
and exists $dispatch{$1}
and $dispatch{$1};
mfg Beat
Hallo Klaus!
ich möchte wissen, ob in $text z.B. einer der Texte aaa, bbb, ccc, ... oder zzz enthalten ist.
Das habe ich so gemacht:
$text =~ /aaa|bbb|ccc|....|zzz/;Wie weiß ich nun, welcher der Texte gefunden wurde?
http://de.selfhtml.org/perl/sprache/vordefiniert.htm#skalare -> schau nach der Bedeutung von $`, $& und $'.
Wie ein guter Wein: In Maßen, nicht in Massen, genießen - sie kosten Performance.
Viele Grüße aus Frankfurt/Main,
Patrick
Ich habe die unkomplizierteste und beste Lösung.
my ($ergebnis) = $text =~ /(aaa|bbb|ccc|....|zzz)/;
Hallo!
Ich habe die unkomplizierteste und beste Lösung.
my ($ergebnis) = $text =~ /(aaa|bbb|ccc|....|zzz)/;
Interessant!
Frage: Wozu dienen die Klammern um $ergebnis?
Gruß
Klaus
my ($ergebnis) = $text =~ /(aaa|bbb|ccc|....|zzz)/;
Frage: Wozu dienen die Klammern um $ergebnis?
Du erzeugst damit auf der linken Seite einen Listenkontext
Im Scalarkontext würdest du nur die Anzahl der Matches, nicht aber die Liste der Matches zugewiesen erhalten.
mfg Beat
Danke an alle!
Klaus