特定の文字列が大きな文字列に表示される回数を最も速くカウントする方法は何ですか?私の最高の推測は、その文字列のすべてのインスタンスを何も置き換えずに、長さの差を計算し、部分文字列の長さで除算することですが、それはむしろ遅いと思われ、大量のデータを分析する必要があります。別の文字列(Perl)内の文字列の出現回数をカウントする
答えて
文字列をキャプチャして数えます。それは()
でキャプチャにリストコンテキストを適用することによって行うことができる。
my $x = "foo";
my $y = "foo foo foo bar";
my $c =() = $y =~ /$x/g; # $c is now 3
あなたはまた、アレイにキャプチャし、配列を数えることができます。同じ原理、異なる技術:
my @c = $y =~ /$x/g;
my $count = @c;
ありがとう! 2番目の解決策によく似ています。 – ronash
@ronashそれは同じ解決策です。 1つは一時変数を使用し、もう1つは使用しません。 'my $ count = @c = $ y =〜/ $ x/g'を実行することもできますが、単に' @c'を無視して '()'を使うだけで済みます。あなたが実際の試合を気にしないなら、どれが最高です。 – TLP
'$ x'が正規表現として解釈されるので、' $ x'にある正規表現文字が含まれていると、これは動作しません。これを修正するために '\ Q'を追加してください。 '/ \ Q $ x/g'となります。詳細は 'quotemeta'を参照してください。 – tuomassalo
あなたが繰り返しループ内でINDEX関数を呼び出し、それがでサブストリングのインデックスを返されたすべての回を数えることができるだけで、完全を期すために文字列、および開始位置を変更します。それは正規表現の使用を避け、私のテストでは正規表現の解決法より少し速いです。
私はここからそれを行うためのサブ適応してきました:http://www.misc-perl-info.com/perl-index.html
sub occurrences {
my($x, $y) = @_;
my $pos = 0;
my $matches = 0;
while (1) {
$pos = index($y, $x, $pos);
last if($pos < 0);
$matches++;
$pos++;
}
return $matches;
}
- 1. 文字列内の文字の出現回数をカウントする
- 2. 列内の文字列の出現回数をカウントするR
- 3. 文字列内の文字の出現数をカウントする
- 4. ハッシュテーブル内の文字列の出現回数をカウントする
- 5. count文字列のベクトル内の文字列の出現回数
- 6. ES6/lodashは文字列内の文字の出現回数をカウントします。
- 7. 文字列内のすべての数字の出現回数をカウントする
- 8. 指定された文字列の配列内の文字列の出現回数をカウントする-CPP
- 9. jQuery:文字列中の文字の出現数をカウントする
- 10. 文字列中の文字の出現数をカウントする
- 11. Splunkで文字列の出現回数をカウントする方法
- 12. Python列の2文字の出現回数をカウントします。
- 13. 文字列内の文字数をカウントし、同じ文字数の別の文字列を作成する
- 14. 文字列内の文字列の発生回数をカウントする
- 15. 月に文字列が出現する回数をカウントする
- 16. 文字配列内の出現数をカウントする
- 17. MySQLの列内の部分文字列の出現回数
- 18. 文字列内の特定の文字の出現回数をカウントするには?
- 19. データフレーム内の文字列の出現回数を追加する
- 20. 文字列内の文字のうち、いくつかのクエリの出現回数をカウントしますか?
- 21. Excel 2013:セル内の数字/文字列の出現をカウントする
- 22. Python:別の文字列内に文字列が何回現われるか
- 23. perl内の文字列の文字順
- 24. データフレーム内の文字列の出現をカウントする
- 25. コメント内の文字列の出現をカウントする
- 26. 文字列中の文字列の出現を重複カウントする。
- 27. Pascal Script Count別の文字列に文字列が現れる回数
- 28. 文字列内の複数の文字を個別にカウントする
- 29. 文字列中の単語の出現数をカウントするアルゴリズム
- 30. 大きなファイルの文字列の出現回数をカウントする
が、それは1999年からだが...これをチェックアウトする場合がありますが、そしてこの種のものを行うための最も可能性の高い他の方法があります効率的に:http://www.perlmonks.org/?node=How%20can%20I%20count%20the%20number%20of%20occurrences%20of%20a%20substring%20within%20a%20string%3F – summea
'perldoc -q count ' – toolic
これらは重なり合うことができますか? – tchrist