Я хочу удалить лишние пробелы в моей строке. Я попробовал trim
, ltrim
, rtrim
и другие, но не из них работают и даже пробовали rtrim
ниже.
//This removes all the spaces even the space between the words // which i want to be kept $new_string = preg_replace('/\s/u', '', $old_string);
Есть ли решение для этого?
Обновлено: –
Строка ввода:-
" Hello Welcome to India "
Строка вывода: –
"Hello Welcome to India"
$cleanStr = trim(preg_replace('/\s\s+/', ' ', str_replace("\n", " ", $str)));
Хорошо, так что вы хотите обрезать все пробелы с конца строки и лишние пробелы между словами.
Вы можете сделать это с помощью одного регулярного выражения:
$result = preg_replace('/^\s+|\s+$|\s+(?=\s)/', '', $subject);
Объяснение:
^\s+ # Match whitespace at the start of the string | # or \s+$ # Match whitespace at the end of the string | # or \s+(?=\s) # Match whitespace if followed by another whitespace character
Как это (пример в Python, потому что я не использую PHP):
>>> re.sub(r"^\s+|\s+$|\s+(?=\s)", "", " Hello\n and welcome to India ") 'Hello and welcome to India'
Если вы хотите удалить несколько пробелов внутри строки, вы можете использовать следующее:
$testStr = " Hello Welcome to India "; $ro = trim(preg_replace('/\s+/', ' ', $testStr));
Я думаю, что мы должны здесь делать, мы не должны искать 1 место, мы должны искать последовательные два пробела, а затем сделать его одним. Таким образом, он не заменит пространство между текстом, а также удалит любое другое пространство.
$new_string= str_replace(' ', ' ', $old_string)
больше на Str Replace
Если вы удаляете одно слово между словами. попробуй
trim(str_replace(' ','','hello word'));
Попробуйте это, это также удалит все & nbsp
$node3 = htmlentities($node3, null, 'utf-8'); $node3 = str_replace(" ", "", $node3); $node3 = html_entity_decode($node3); $node3 = preg_replace('/^\s+|\s+$|\s+(?=\s)/', '', $node3);