如何通过一个或多个空格或制表符拆分字符串?
示例:
示例:
A B C D
我想把这个变成数组。
$parts = preg_split('/\s+/', $str);
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
- coeing按制表符分隔:
$comp = preg_split("/\t+/", $var);
按空格/制表符/换行符分隔:
$comp = preg_split('/\s+/', $var);
只按空格分隔:
$comp = preg_split('/ +/', $var);
preg_split('/\s{2,}/', $var);
。 - Angry 84\t
没有任何好处。 - mickmackusa这个有效:
$string = 'A B C D';
$arr = preg_split('/\s+/', $string);
\s
没有任何好处。 - mickmackusa[\s,]
),创建一个"字符类"是合适的。当你只是根据\s
(空格)进行分割时,请使用此答案中的当前语法(由Dharman在我评论后编辑)。 - mickmackusa作者要求使用explode函数,你可以像下面这样使用:
$resultArray = explode("\t", $inputString);
注意:必须使用双引号而不是单引号。
我认为您需要使用preg_split
函数:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
不要使用explode,可以尝试使用preg_split:http://www.php.net/manual/en/function.preg-split.php
full width
$searchValues = preg_split("@[\s+ ]@u", $searchString);
参考资料:
(由于我没有足够的声望在评论区发表,所以我把这篇文章写成了回答。)
$string = "\tA\t B \tC \t D ";
(包含制表符和空格的混合,包括前导制表符和尾随空格)preg_split('~ +~', $string) // one or more literal spaces, allow empty elements
preg_split('~ +~', $string, -1, PREG_SPLIT_NO_EMPTY) // one or more literal spaces, deny empty elements
preg_split('~\t+~', $string) // one or more tabs, allow empty elements
preg_split('~\t+~', $string, -1, PREG_SPLIT_NO_EMPTY) // one or more tabs, deny empty elements
preg_split('~\s+~', $string) // one or more whitespace character, allow empty elements
preg_split('~\s+~', $string, -1, PREG_SPLIT_NO_EMPTY), // one or more whitespace character, deny empty elements
preg_split('~[\t ]+~', $string) // one or more tabs or spaces, allow empty elements
preg_split('~[\t ]+~', $string, -1, PREG_SPLIT_NO_EMPTY) // one or more tabs or spaces, deny empty elements
preg_split('~\h+~', $string) // one or more horizontal whitespaces, allow empty elements
preg_split('~\h+~', $string, -1, PREG_SPLIT_NO_EMPTY) // one or more horizontal whitespaces, deny empty elements
$name = "John Doe";
preg_split('/\s+/', $name)[0];
// John
[0]
,它只会获取第一个单词 - 根据您需要的数组元素进行修改。$name = "John Doe";
strtok($string, " ")[0];
// John
strtok()
函数不理解正则表达式。https://3v4l.org/g7ehT 看起来你在错误的页面上发布了问题。如何在PHP中获取句子的第一个单词? - mickmackusaexplode
),即使他们只需要字符串的第一个单词。这就是我为什么会来到这个问题上,毫无疑问还有无数其他人是通过谷歌找到这个问题的,所以我认为最好用一个合适的解决方案来回答这个问题。 - Hashim Aziz$foo = str_replace(' ', '', $line);
$pieces = explode(',', $foo);