我试图在PHP中拆分字符串。我应该使用两个分隔符来分割字符串:新行和逗号。我的代码是:
$array = preg_split("/\n|,/", $str)
但是我使用逗号进行字符串拆分,但不使用\ n。这是为什么?另外,我是否必须考虑“\ r \ n”符号?
答案 0 :(得分:8)
我可以想到发生这种情况的两个可能原因。
1.
您使用的是单引号字符串:
$array = preg_split("/\n|,/", 'foo,bar\nbaz');
print_r($array);
Array
(
[0] => foo
[1] => bar\nbaz
)
如果是,请使用双引号"
代替......
$array = preg_split("/\n|,/", "foo,bar\nbaz");
print_r($array);
Array
(
[0] => foo
[1] => bar
[2] => baz
)
2.
您有多个换行符序列,如果是,我建议您使用\R
。这匹配ASCII
范围内的任何Unicode换行序列。
$array = preg_split('/\R|,/', "foo,bar\nbaz\r\nquz");
print_r($array);
Array
(
[0] => foo
[1] => bar
[2] => baz
[3] => quz
)