我可以使用preg_split
用逗号分隔字符串,例如
$words = preg_split('/[,]/', $string);
如何使用点,空格和分号来分割字符串中的任何一个?
PS。我在PHP preg_split页面上找不到任何相关的例子,这就是我要问的原因。
答案 0 :(得分:7)
试试这个:
<?php
$string = "foo bar baz; boo, bat";
$words = preg_split('/[,.\s;]+/', $string);
var_dump($words);
// -> ["foo", "bar", "baz", "boo", "bat"]
模式解释
[]
是一个字符类,一个字符类由多个字符组成,并与类中的一个字符匹配
.
与.
字符匹配,不需要在字符字符类中对其进行转义。虽然不在字符类中时需要转义,但因为.
表示“匹配任何字符”。
\s
匹配空白
;
要拆分分号,这不需要转义,因为它没有特殊含义。
最后的+
确保分割字符后的空格不会显示为匹配
答案 1 :(得分:3)
这些例子可能不是字面意思,而是带有多个分隔符选项的分割
$words = preg_split('/[ ;.,]/', $string);
答案 2 :(得分:2)
这样的事情?
<?php
$string = "blsdk.bldf,las;kbdl aksm,alskbdklasd";
$words = preg_split('/[,\ \.;]/', $string);
print_r( $words );
结果:
Array
(
[0] => blsdk
[1] => bldf
[2] => las
[3] => kbdl
[4] => aksm
[5] => alskbdklasd
)
答案 3 :(得分:1)
$words = preg_split('/[\,\.\ ]/', $string);
答案 4 :(得分:1)
只需将这些字符添加到表达式
即可$words = preg_split('/[;,. ]/', $string);
编辑:感谢Igoris Azanovas,不需要在字符类中转义点;)
答案 5 :(得分:0)
$words = preg_split('/[,\.\s;]/', $string);