我可以如何通过空格来分割一个字符串,无论这个空格有多长?
例如,从以下字符串中:
"the quick brown fox jumps over the lazy dog"
我会获取一个数组。
['the', 'quick', 'brown', 'fox', 'jumps', 'over', 'the', 'lazy', 'dog'];
$string = 'the quick brown fox jumps
over the
lazy dog';
$words = preg_split('/\s+/', $string, -1, PREG_SPLIT_NO_EMPTY);
print_r($words);
这会产生以下输出:
Array
(
[0] => the
[1] => quick
[2] => brown
[3] => fox
[4] => jumps
[5] => over
[6] => the
[7] => lazy
[8] => dog
)
-1
表示没有限制。如果您在那里指定一个正数,那么它只会匹配那么多次。比如我把它设置为3,它将返回 [0] => the, [1] => quick, [2] => brown fox jumps over...
。PREG_SPLIT_NO_EMPTY
意味着它不会返回空字符串。例如,如果您使用 \s
而不是 \s+
,那么它会将所有空格分解为单独的实体,并返回一堆空字符串和您想要的文本。PREG_SPLIT_NO_EMPTY
只是告诉它忽略空项并给我们想要的东西。 - QuixrickPREG_SPLIT_NO_EMPTY
用于处理字符串开头或末尾存在空格的情况。-1
是默认值,只有在需要设置第四个参数时才需要。 - Den使用正则表达式:
$str = "the quick brown fox jumps over the lazy dog";
$a = preg_split("~\s+~",$str);
print_r($a);
Array ( [0] => the [1] => quick [2] => brown [3] => fox [4] => jumps [5] => over [6] => the [7] => lazy [8] => dog )
工作原理:
\s+
表示一个或多个空格字符。它是分割字符串的分隔符。请注意,PCRE 所谓的“空格字符”不仅仅是通过按空格键得到的字符,还包括制表符、垂直制表符、回车和换行符。这对您的目的来说应该完全有效。
参考资料:
\s+
表示一个或多个空格、制表符、换行符、回车符、换页符。 - Dejan Marjanović
trim
可以获得更可靠的结果... - Jack