在PHP中拆分多个分隔符上的字符串

时间:2011-07-25 07:38:58

标签: php preg-split

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

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

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

PS。我在PHP preg_split页面上找不到任何相关的例子,这就是我要问的原因。

6 个答案:

答案 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);