文字列の効果的な単語カウンターを作成する方法を理解しようとした後、PHPが持つ既存の関数について知っていますがstr_word_count
、残念ながら、英語を含む単語の数を数える必要があるため、必要な機能を実行できません。 、中国語、日本語、その他のアクセント付き文字。
ただしstr_word_count
、3番目の引数に文字を追加しない限り、単語数はカウントされませんが、これは非常識です。中国語、日本語、アクセント付き文字(など)の言語ですべての文字を追加する必要がある可能性がありますが、これは私が行うことではありません。必要。
テスト:
str_word_count('The best tool'); // int(3)
str_word_count('最適なツール'); // int(0)
str_word_count('最適なツール', 0, '最ル'); // int(5)
とにかく、私はこの関数をオンラインで見つけました、それは仕事をすることができました、しかし悲しいことにそれは数えられません:
function word_count($str)
{
if($str === '')
{
return 0;
}
return preg_match_all("/\p{L}[\p{L}\p{Mn}\p{Pd}'\x{2019}]*/u", $str);
}
テスト:
word_count('The best tool') // int(3)
word_count('最適なツール'); // int(1)
// With spaces
word_count('最 適 な ツ ー ル'); // int(5)
基本的に、すべての一般的な単語/アクセント付き/言語記号から単語をカウントできる、UTF-8でサポートされている優れた単語カウンターを探しています-これに対する可能な解決策はありますか?