首页 > 解决方案 > 在 PHP 中使用 str_word_count 将数字计数为单独的单词

问题描述

我正在尝试使用str_word_count来计算消息中的字数。

$wordcount = str_word_count($message,0,'0123456789');

我几乎可以保证那里只会有单词、数字和空格。该消息是编码语音到文本消息的结果。

我正在努力解决的一件事是让它正确返回正确数量的单词。我需要将每个数字都算作它自己的单词。因此,“4 5 6”是 3 个单词,“456”也是 3 个单词。“FOUR”是一个词,“FOUR 44”是3个词,依此类推。

这个函数的文档说我应该能够通过指定字符作为第三个参数算作单词来做到这一点,我已经这样做了。但是,整个数字“块”仍然计为一个单词。我尝试在数字之间添加空格,但这在视觉上触发了 Notepad++ 中的语法错误,并且基本上炸毁了我的整个 PHP 页面。

我考虑过过滤字符串中的数字,然后将其长度添加到字数中,但是我肯定会重复计算一些数字......这很混乱!

什么办法可以让我在本地做到这一点str_word_count吗?

标签: phpstringword-count

解决方案


解决此问题的一种方法是preg_replace首先将您的数字字符串拆分为单个数字,然后计算单词。例如:

$message = "I have 123 chickens";
$message = preg_replace('/\s*(\d)/', ' $1', $message);
$wordcount = str_word_count($message, 0, '0123456789');
echo $wordcount;

输出

6

3v4l.org 上的演示


推荐阅读