我正在尝试计算用非拉丁语(保加利亚语)编写的变量中的单词数。但似乎 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/