在PHP中使用多个分隔符拆分字符串


Splitting a string on multiple separators in PHP

我可以使用preg_split用逗号分割字符串,如

$words = preg_split('/[,]/', $string);

我如何使用点,空格和分号来分割字符串与这些中的任何一个?

p。我在PHP preg_split页面上找不到任何相关的例子,这就是为什么我要问。

试试这个:

<?php
$string = "foo bar baz; boo, bat";
$words = preg_split('/[,.'s;]+/', $string);
var_dump($words);
// -> ["foo", "bar", "baz", "boo", "bat"]

The Pattern explained

[]是一个字符类,一个字符类由多个字符组成,并与类

中的一个字符匹配。

.匹配.字符,这不需要在字符类中转义。虽然当不在字符类中时需要转义,因为.表示"匹配任何字符"。

's匹配空格

;在分号上进行分割,这个不需要转义,因为它没有特殊的意义。

结尾的+确保分隔字符后面的空格不显示为匹配

示例就在那里,也许不是字面上的,而是带有多个分隔符

选项的分隔符。
$words = preg_split('/[ ;.,]/', $string);

像这样?

<?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
)
$words = preg_split('/[','.' ]/', $string);

只需将这些字符添加到表达式

$words = preg_split('/[;,. ]/', $string);

EDIT:由于Igoris Azanovas,不需要在字符类中转义点;)

$words = preg_split('/[,'.'s;]/', $string);