Я пытаюсь разбить строку в PHP. Я должен разделить строку, используя два разделителя: новую строку и запятую. Мой код:
$array = preg_split("/\n|,/", $str)
Но я получаю строку, разделенную запятой, но не использую \ n. Это почему? Кроме того, я должен принять во внимание символ «\ r \ n»?
Я могу думать о двух возможных причинах, что это происходит.
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
если так. Это соответствует любой последовательности новой строки Unicode, которая находится в ASCII
спектр.
$array = preg_split('/\R|,/', "foo,bar\nbaz\r\nquz");
print_r($array);
Array
(
[0] => foo
[1] => bar
[2] => baz
[3] => quz
)
Других решений пока нет …