regex — разделяет строку в php с запятой и новой строкой

Я пытаюсь разбить строку в PHP. Я должен разделить строку, используя два разделителя: новую строку и запятую. Мой код:

$array = preg_split("/\n|,/", $str)

Но я получаю строку, разделенную запятой, но не использую \ n. Это почему? Кроме того, я должен принять во внимание символ «\ r \ n»?

1

Решение

Я могу думать о двух возможных причинах, что это происходит.

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
)
8

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]