Удалите лишние пробелы, но не пробелы между двумя словами

Я хочу удалить лишние пробелы в моей строке. Я попробовал 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" 

Solutions Collecting From Web of "Удалите лишние пробелы, но не пробелы между двумя словами"

 $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);