Steffen Wawryniuk: Zeichenkette in Variable zählen

Hallo,

wie kann ich zählen wieoft eine Zeichenkette in einer Variable (Text in einer Variable )vorkommt?

Also ich suche eigentlich eine einfache lösung wie die in selfhtml beschriebenen Transliteration, jedoch sind diese ja nicht auf Zeichenketten anzuwenden.
Und eine while-schleife, die die Variable in ein Array splittet wollt ich eigentlich nicht verwenden weil des erscheint mir irgendwie umständlich...
Gibt es da nicht irgendwas mit regulären ausdrücken was das einfach ermöglicht

Gruß
Steffen

  1. Moin, moin!

    Hier eine Lösung, die sicher nicht optimal ist:
    Ersetze den zu zählenden String durch sich selbst! Dabei wird die Anzahl der Fundstellen zurückgegeben.

    $teststring="Most of this section is related to use of regular expressions from Perl. Such a use may be considered from two points of view: Perl handles a a string and a ``pattern'' to RE (regular expression) engine to match, RE engine finds (or does not find) the match, and Perl uses the findings of RE engine for its operation, possibly asking the engine for other matches.";

    $searchstring="of";

    $count=$teststring=~s/($searchstring)/$1/g;

    Norbert

  2. Hallo,

    wie kann ich zählen wieoft eine Zeichenkette in einer Variable
    (Text in einer Variable )vorkommt?

    Wenn du perldoc perlre oder perldoc perlop gelesen haettest, dann
    wuesstest, dass der s///-Operator die Anzahl der vorgenommenen
    Ersetzungen zurueck gibt. So kann man mit dieser Funktion die Anzahl
    der Zeichen in einem String herausfinden:

    sub countchars($$) {
      my $str    = shift;
      my $search = quotemeta shift;

    return $str =~ s/$search//g;
    }

    Gruesse,
     CK

    1. hi!

      wie kann ich zählen wieoft eine Zeichenkette in einer Variable
      (Text in einer Variable )vorkommt?
      Wenn du perldoc perlre oder perldoc perlop gelesen haettest, ...

      Man kann auch erst in der FAQ nachschauen, was IMHO sinnvoller ist,
      als auf Verdacht in der ganzen Dokumentation zu suchen:
        perldoc perlfaq4
        perldoc -q occurrences[1]

      bye, Frank!

      [1] http://www.perldoc.com/perl5.6.1/pod/perlfaq4.html#How-can-I-count-the-number-of-occurrences-of-a-substring-within-a-string-