Php 为什么这个preg_split没有按我希望的那样工作?
我有一个preg_分割模式,如下所示:Php 为什么这个preg_split没有按我希望的那样工作?,php,regex,Php,Regex,我有一个preg_分割模式,如下所示: $pattern = '/[, ;:-_.|+#\/]/'; 我用 $pcs = preg_split($pattern, $string); 如果字符串为“你好”,则count($pcs)==5 如果字符串是“你好”,那么count($pcs)==4 如果字符串是“你好”,那么count($pcs)==6 有人知道问题出在哪里吗?(我希望在所有上述情况下返回4) 我的计划是简单地将用户输入的字符串拆分为单词。 输入的字符串可能包含上述模式中的字符 谢
$pattern = '/[, ;:-_.|+#\/]/';
我用
$pcs = preg_split($pattern, $string);
如果字符串为“你好”,则count($pcs)==5
如果字符串是“你好”,那么
count($pcs)==4
如果字符串是“你好”,那么
count($pcs)==6
有人知道问题出在哪里吗?(我希望在所有上述情况下返回4) 我的计划是简单地将用户输入的字符串拆分为单词。 输入的字符串可能包含上述模式中的字符
谢谢看看你的空白。我将假设如下:
- “你好”分割结果有
$pcs[0]=''
- “你好吗”分割结果有
和$pcs[0]='
$pcs[5]='
由于开头和/或结尾处有空格(取决于具体情况),因此preg_分割仍将在nothing和第一个和/或最后一个单词之间创建分割。如果你想避免这种情况,你应该在分割前先运行一次。看看你的空格。我将假设如下:
- “你好”分割结果有
$pcs[0]=''
- “你好吗”分割结果有
和$pcs[0]='
$pcs[5]='
$pcs = preg_split($pattern, $string, -1, PREG_SPLIT_NO_EMPTY);
阅读手册中的更多内容:试试看
$pcs = preg_split($pattern, $string, -1, PREG_SPLIT_NO_EMPTY);
请阅读手册中的更多内容:此解决方案很有意义,但只是为了扮演魔鬼代言人的角色。。这根绳子怎么了<代码>';'代码>返回的不是一个空数组吗?当然,但请看OP写的“我的计划是将用户输入的字符串简单地拆分为单词。”我认为这是适合这种情况的。这个解决方案很有意义,但只是为了扮演魔鬼代言人。。这根绳子怎么了<代码>';'代码>返回的不是一个空数组吗?当然,但是看看OP写的“我的计划是简单地将用户输入的字符串拆分为单词。”我认为这是适合这种情况的。