php - 非拉丁词的 str_word_count()?

标签 php count

我正在尝试计算用非拉丁语(保加利亚语)编写的变量中的单词数。但似乎 str_word_count() 没有计算非拉丁词。 php文件的编码是UTF-8

$str = "текст на кирилица";
echo 'Number of words: '.str_word_count($str);
//this returns 0

最佳答案

你可以用正则表达式来做:

$str = "текст на кирилица";
echo 'Number of words: '.count(preg_split('/\s+/', $str));

这里我将单词定界符定义为空格字符。如果可能有其他内容将被视为单词定界符,您需要将其添加到您的正则表达式中。

另外,请注意,由于 regex 中没有 utf 字符(不是字符串中)- /u 修饰符不是必需的。但是如果你想要一些 utf 字符作为分隔符,你需要添加这个正则表达式修饰符。

更新:

如果你只想在单词中处理西里尔字母,你可以使用:

$str = "текст 
на 12453
кирилица";
echo 'Number of words: '.count(preg_split('/[^А-Яа-яЁё]+/u', $str));

关于php - 非拉丁词的 str_word_count()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23015600/

相关文章:

php - 如何将结果从 MySQL 存储到 PHP 数组?

php - 将 JSON 中的值插入数据库

python - Pandas 数据框中的计数和计数

mysql 复杂选择查询

r - 连续统计条件R数据帧的出现次数

php - PHP 中的文件操作 : lock, 读取、清除、解锁

php - 如何使用 php 从 seo 友好的 url 获取 id?

php - 有没有办法在 PDO 中设置默认游标类型(特别是 PDO_SQLSRV)?

python - Python中字符串中子字符串的重叠计数

mysql - 在sql中查找两个组合列的平均值