Разграничить строку пробелами
Что будет подходящим регулярным выражением для разделения строки всеми пробелами? Между двумя токенами также может быть несколько пробелов, и в конце они должны игнорировать пробелы.
Что у меня так далеко:
<?php
$tags = "unread dev test1 ";
$tagsArr = preg_split("/ +/", $tags);
foreach ($tagsArr as $value) {
echo $value . ";";
}
Это дает мне следующий вывод:
"unread;dev;test1;;"
Как вы можете видеть, он не игнорирует пробелы в конце, потому что правильный вывод должен быть:
"unread;dev;test1;"
4 ответа
Вы можете игнорировать пустые записи, используя флаг PREG_SPLIT_NO_EMPTY
:
$tagsArr = preg_split("/ +/", $tags, -1, PREG_SPLIT_NO_EMPTY);
Демо: http://ideone.com/1hrNJ
Просто используйте функцию обрезки в первую очередь, чтобы удалить пробел в конце.
$ trimmed_tags = trim ($ tags);
Самый быстрый способ:
$tagsArr = array_filter( explode(' ', $tags) );
Похоже, что вы хотите сохранить пробел во всей строке, но удалить с конца (чтобы не допустить эту последнюю раздражающую точку с запятой. Если я правильно понял до сих пор, это звучит как идеальное использование для команды обрезки: