preg_split模式如下:
$pattern = '/[, ;:-_.|+#'/]/';
我使用
$pcs = preg_split($pattern, $string);
如果字符串是" Hello how are you",则表示count($pcs) == 5
.
如果字符串是"Hello how are you",那么count($pcs) == 4
。
如果字符串是" Hello how are you ",那么count($pcs) == 6
.
有谁知道是什么问题吗?(我希望在以上所有情况下它都返回4)。
我的计划是将用户输入的字符串简单地分割成单词。输入的字符串可以包含上述模式中的字符。
谢谢
Try
$pcs = preg_split($pattern, $string, -1, PREG_SPLIT_NO_EMPTY);
阅读更多手册:http://php.net/manual/en/function.preg-split.php
看看你的空格。我将假设如下:
- "Hello how are you"拆分结果有
$pcs[0] == ''
- "Hello how are you"拆分结果有
$pcs[0] == ''
和$pcs[5] == ''
因为在开头和/或结尾有空格(取决于情况),你的preg_split仍然会在没有内容和第一个和/或最后一个单词之间创建分割。如果你想避免这种情况,你应该在分割前先运行trim()。