Ответ 1
С regexp:
preg_replace('/( )+/', ' ', $string);
Если вы также хотите удалить все несколько белых символов, вы можете использовать \s (\ s - белые символы)
preg_replace('/(\s)+/', ' ', $string);
Я пытаюсь удалить лишние пробелы из строки следующим образом:
hello мир
к
привет мир
Кто-нибудь знает, как это сделать в PHP?
С regexp:
preg_replace('/( )+/', ' ', $string);
Если вы также хотите удалить все несколько белых символов, вы можете использовать \s (\ s - белые символы)
preg_replace('/(\s)+/', ' ', $string);
$str = 'Why do I
have so much white space?';
$str = preg_replace('/\s{2,}/', ' ', $str);
var_dump($str); // string(34) "Why do I have so much white space?"
Вы также можете использовать квантор +
, потому что он всегда заменяет его . Тем не менее, я нахожу
{2,}
, чтобы показать ваше намерение более ясным.
Существует пример того, как удалить лишние пробелы в preg_replace документации
Не эксперт PHP, но его звуки как работа для REGEX....
<?php
$string = 'Hello World and Everybody!';
$pattern = '/\s+/g';
$replacement = ' ';
echo preg_replace($pattern, $replacement, $string);
?>
Опять же, PHP не мой язык, но идея состоит в том, чтобы заменить несколько пробелов одиночными пробелами. \s
означает пробел, а +
означает один или несколько. g
на конце означает сделать это глобально (т.е. Более одного раза).