php - 在 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
吗?
解决方案
解决此问题的一种方法是preg_replace
首先将您的数字字符串拆分为单个数字,然后计算单词。例如:
$message = "I have 123 chickens";
$message = preg_replace('/\s*(\d)/', ' $1', $message);
$wordcount = str_word_count($message, 0, '0123456789');
echo $wordcount;
输出
6
推荐阅读
- javascript - React 状态正在更新,但组件没有
- java - 在java中每毫秒生成4位多个唯一ID
- python-2.7 - 使用 json.loads 生成输入时,pickle.dumps 输出大小会增加
- react-native - React-native 相机显示空白屏幕
- php - 将 docker-compose 连接到 Laravel/Ubuntu 中的远程数据库
- python - 如何修复缺少 1 个必需的位置参数“请求”错误?
- ruby-on-rails - 格子和 QFX 文件中的交易是否有共同的唯一标识符?
- c# - itext7 PdfAConformanceException:超出最大阵列容量
- editor - Visual Studio .NET 2003 编辑器:Ctrl+向下箭头
- reactjs - 使用 React Query 时,如何确保跨数据集的查询对数据进行规范化?