如何计算特定子序列的实例数


How to count the number of instances of a particular subsequence

我有一个长字符串的文件;我不能做的是搜索和计数特定的子序列。我想计算 veryLongWord.txt 文件中"ABD"子字符串的数量。以下是我目前拥有的。

<?php
      $file = fopen("veryLongWord.txt", "r");
      /*
      inside veryLongWord.txt
      ABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABD
      ABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABDABDBBAABAADBBADABDADDAABBABD    
      */
      $word = "";
      while(!feof($file)) {
        $line = fgets($file);
        $word .= trim($line);
      }
      fclose($file);
      $subseq = null;
      $count = 0;

      print $subseq . " shows " . $count . " times <br/>";
    ?>

已经有一个函数可以做到这一点:substr_count

$contentsOfVeryLongWord = file_get_contents("veryLongWord.txt");
$count = substr_count($contentsOfVeryLongWord, 'ABD');