1

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

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

如何使用点、空格和分号来分割字符串?

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

4

6 回答 6

7

试试这个:

<?php

$string = "foo bar baz; boo, bat";

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

var_dump($words);
// -> ["foo", "bar", "baz", "boo", "bat"]

模式解释

[]是一个字符类,一个字符类由多个字符组成,并匹配到该类中的一个字符

.匹配.字符,这不需要字符类中转义。虽然这需要在不在字符类中时进行转义,因为这.意味着“匹配任何字符”。

\s匹配空格

;在分号上拆分,不需要转义,因为它没有特殊含义。

+末尾的确保拆分字符后的空格不会显示为匹配项

于 2011-07-25T07:52:33.757 回答
3

这些示例在那里,可能不是字面上的,而是具有多个分隔符选项的拆分

$words = preg_split('/[ ;.,]/', $string);
于 2011-07-25T07:43:06.670 回答
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
)
于 2011-07-25T07:43:31.693 回答
1
$words = preg_split('/[\,\.\ ]/', $string);
于 2011-07-25T07:42:28.217 回答
1

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

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

编辑:感谢 Igoris Azanovas,不需要在字符类中转义点;)

于 2011-07-25T07:42:57.797 回答
0
$words = preg_split('/[,\.\s;]/', $string);
于 2011-07-25T07:43:25.470 回答