PHP preg_plit () с переносами строк, но предотвращает многократные переходы - PullRequest
0 голосов
/ 08 июня 2019

Я хотел бы preg_split () для каждой новой строки, только для строки с содержимым (без многострочных переходов)

Я пробовал это (\S*)\n|$

Например:

last_name, first_name

bjorge, philip
kardashian, kim
mercury, freddie

мой preg_split

(\S*)\n|$
array(2
0   =>  last_name, first_name
1   =>  
)
array(2
0   =>  
1   =>  
)
array(2
0   =>  bjorge, philip
1   =>  
)
array(2
0   =>  kardashian, kim
1   =>  
)
array(2
0   =>  mercury, freddie
1   =>  
)

То, что я хотел бы в качестве массива:

array(2
0   =>  last_name, first_name
)
array(2
0   =>  bjorge, philip
)
array(2
0   =>  kardashian, kim 
)
array(2
0   =>  mercury, freddie    
)

1 Ответ

0 голосов
/ 09 июня 2019

Разделить на \R+, что означает 1 или более любого вида разрыва строки.

Редактировать в соответствии с комментарием:

Чтобы не захватывать строки, содержащие толькопробелы, добавьте \h+ (т.е. 1 или более горизонтальных пробелов):

$string = "last_name, first_name

bjorge, philip
kardashian, kim
mercury, freddie
";
$res = preg_split('/\h*\R+/', $string, -1, PREG_SPLIT_NO_EMPTY);
print_r($res);

Вывод:

Array
(
    [0] => last_name, first_name
    [1] => bjorge, philip
    [2] => kardashian, kim
    [3] => mercury, freddie
)
...