Anzahl der Matches eines RegExps ermitteln
LanX
- perl
0 n.d. parker0 LanX0 Cheatah0 LanX0 Swen Wacker0 n.d. parker0 Kess
0 Cheatah
Hallo Leute
Anfaengerfrage:
Ich will ausgeben wie oft ein Suchausdruck in einem String vorkommt,
hab bisher aber nichts eleganteres gefunden als erst alle Matches
einem Array zuzuweisen, die Laenge des Arrays zu ermitteln und dieses
dann auszugeben, dass muss doch auch eleganter gehen oder???
so gehts unelegant:
@POSTINGS=/($POSTING_START)/gs;
$ANZ_POSTINGS=@POSTINGS;
print "$THEMA postings:$ANZ_POSTINGS\n";
waehrend das folgende nur 1 fuer "Suche erfolgreich" meldet
$ANZ_POSTINGS=/($POSTING_START)/gs;
Danke im voraus fuer die Hilfe
Tschuess
Rolf
Moin,
Ich will ausgeben wie oft ein Suchausdruck in einem String vorkommt,
so gehts unelegant:
@POSTINGS=;
$ANZ_POSTINGS=@POSTINGS;
my $anzahl = 0;
$anzahl++ while (/$POSTING_START/gs);
oder
my $anzahl = () = /$POSTING_START/gs;
etc. (TIMTOWTDI)
btw:
* Variablennamen in Perl werden ueblicherweise klein geschrieben.
* ich hoffe, dein zu durchsuchender String befindet sich in $_
* du willst wahrscheinlich /\Q$POSTING_START/ schreiben (perldoc perlre
)
Viele Gruesse,
n.d.p.
Hi n.d., Cheatah
my $anzahl = () = /$POSTING_START/gs;
Exquisit! Sowas hab ich gesucht! In welchem perldoc steht sowas ;)?
Wird dabei $_ ueberschrieben???
etc. (TIMTOWTDI)
ehm ... schlag ich nach ... moment Google sagt ...
"There Is More Than One Way To Do It."
Logisch, wollt halt klueger werden ;-)
* Variablennamen in Perl werden ueblicherweise klein geschrieben.
Zu viele Sprachen versauen den Stil, ich glaub das stammt noch aus
meinen GFA-Basic Zeiten, ich merks mir!
* ich hoffe, dein zu durchsuchender String befindet sich in $_
Yes!
* du willst wahrscheinlich /\Q$POSTING_START/ schreiben (
perldoc perlre
)
Hmmm haste recht, defensiv kann nicht schaden ;)
Viele Gruesse,
Hi,
my $anzahl = () = /$POSTING_START/gs;
Exquisit! Sowas hab ich gesucht! In welchem perldoc steht sowas ;)?
hm, perldoc perlref würde ich tippen. Stichwort "anonymous array".
Wird dabei $_ ueberschrieben???
Probier's aus!
$_ = 'test'
my $anzahl = () = /$POSTING_START/gs;
print $_;
etc. (TIMTOWTDI)
"There Is More Than One Way To Do It."
Das ist übrigens _der_ Grundsatz von Perl!
if ($a != $b) { &tuwas; }
unless ($a == $b) { &tuwas; }
&tuwas if ($a != $b);
&tuwas unless ($a == $b);
($a != $b) && &tuwas;
...
Der Entwickler von Perl ist übrigens in der Linguistik zu Hause - Perl läßt sich daher schreiben, wie man spricht! :-)
* Variablennamen in Perl werden ueblicherweise klein geschrieben.
Zu viele Sprachen versauen den Stil, ich glaub das stammt noch aus
meinen GFA-Basic Zeiten, ich merks mir!
Noch mal die Empfehlung: perldoc perlstyle
Man muß nicht mit allem davon einverstanden sein (mein Stil weicht auch davon ab), aber diese Dokuseite enthält doch einige sehr nützliche Grundsätze, die vor allem das Verstehen _fremder_[1] Codes vereinfacht.
[1] Dazu gehören auch die eigenen - oft schon nach wenigen Tagen ;-)
Cheatah
Hi Cheatah,
probiers aus
Ja, ich kenn die Antwort schon ... ;)
[1] Dazu gehören auch die eigenen - oft schon nach wenigen Tagen ;-)
Seufz, wem sagste das!
Bye Rolf
[1] Tarzans Affe??? ;) Ich weiss es wirklich nicht, und google schmeisst bei
"Cheatah Tarzan" nur so komische Witzseiten aus ... *g*
Hi allerseits
Der vollstaendigkeit halber noch ne Variante
$anz_postings= split(/\Q$posting_start/gs);
Viele GrueBe
Rolf
Hi,
[1] Tarzans Affe??? ;)
nein, Tarzans Schimpanse(! *g*) Cheetah wurde nach dem englischen Wort für "Gepard" benannt.
Cheatah
Hoi
nein, Tarzans Schimpanse(! *g*) Cheetah wurde nach dem englischen Wort für "Gepard" benannt.
Aha? Und wie fuehlst du dich gerade so, als Steppenmieze oder
Banaenchefresser *g* ?
Schoenen abend noch
Rolf
Hi,
nein, Tarzans Schimpanse(! *g*) Cheetah wurde nach dem englischen Wort für "Gepard" benannt.
^
Aha? Und wie fuehlst du dich gerade so, als Steppenmieze oder
Banaenchefresser *g* ?
weder noch - beachte die Schreibweisen ;-)
Cheatah
Hoi Cheatah
weder noch - beachte die Schreibweisen ;-)
Soso dann also eher Cheater (weniger zooologisch und mehr
verarschologisch, gell :)
Bye bye
Rolf
Hi,
Soso dann also eher Cheater (weniger zooologisch und mehr
verarschologisch, gell :)
"Cheatah" ist frühschulisch für "Schnell-Einen-Nick-Wähler" ;-)
Cheatah
Moin!
"Cheatah" ist frühschulisch für "Schnell-Einen-Nick-Wähler" ;-)
So so. "Calocybe" ist fruehschuhlisch fuer "Mit-Bedacht-Einen-Nick-Waehl-aber-letztlich-doch-nichts-richtiges-Einfallender". Vielleicht sollten wir ein entsprechendes Dictionary kreieren.
So long
Moin,
Der Entwickler von Perl ist übrigens in der Linguistik zu Hause - Perl läßt sich daher schreiben, wie man spricht! :-)
Und was heisst denn "Haste ma 'ne Mark als Gegenleistung für die tolle Antwort?" auf perlisch ?
Viele Grüße
Swen,
auch mal gern was auf perlisch als Signatur haben wollend
Moin Swen,
Und was heisst denn "Haste ma 'ne Mark als Gegenleistung für die tolle Antwort?" auf perlisch ?
#!/usr/bin/perl -w -- n.d.p.
use strict; sub Frage($){(7*
3<<1).shift}sub lautet($){q{
}}
die Frage lautet "Haste mal 'nen Euro?"
__END__
Viele Gruesse,
n.d.p., angebend ;-)
--
print "Just Another Perl Hacker";
Hi n.d.,
$a=" D SS a 4 UE X I T";$b="h5S1 VA S H.N T EA5 E N9";
$c=" T E 24 C A M5L 3BA H M";$d=" A 1ERX 2 I4 S ";
sub Antwort($){$b^$c.",".($a^$d)."? ;-)".shift}sub lautet($){q{
}}
die Antwort lautet "Nein, nur Deutsche Mark"
__END__
Greetz
Kess *kann das auch ;)*
--
print "Not Another Perl Hacker";
Hi,
so gehts unelegant:
in der Tat - allerdings aus einem anderen Grund, den Du in
perldoc perlstyle
nachlesen kannst (=solltest). Ich beziehe mich auf die Wahl Deiner Variablennamen...
$ANZ_POSTINGS=/($POSTING_START)/gs;
Du willst also einen Einzeiler?
#!/usr/bin/perl -w
use strict;
my $text = 'abacadaeafagahaiaj';
print scalar (my @array = ($text =~ /a/g));
Cheatah