Фрагмент кода PHP — Preg Replace, чтобы обеспечить только 1 пробел между словами в строке

Я использую preg_replace для удаления ненужных символов из строки. Это работает нормально.

Что бы я дополнительно имел, так это просто изменить это (или в следующей строке), чтобы я мог разрешить максимум 1 пробел между словами. Нет пробелов перед или за строкой.

Я видел ответ на PHP preg_match должен гарантировать, что между словами разрешен только ОДИН пробел, где было опубликовано возможное решение ( решение -> ^[a-zA-Z]+( [a-zA-Z]+)*$ ), но с некоторыми поднятыми вопросами (какое определение слова? какой тип пробела)

Определение моего слова -> английские слова (включая a-z, A-Z, 0-9,-, _)

Пробелы -> пробел пробел ( ), а не новые строки и т. д.

Есть фрагменты кода?

Спасибо, Месвара


person MarcoMeswara    schedule 01.02.2012    source источник


Ответы (1)


Попробуй это:

<?php
$my_str = 'Hello,    too  many      spaces!';
$my_str = preg_replace('#[\s]+#', ' ', $my_str);
echo $my_str; // returns 'Hello, too many spaces!'
person Yoone    schedule 01.02.2012
comment
Обратите внимание, что \s предназначен для пробелов, вы также можете добавить \t, например, для вкладок. - person Yoone; 01.02.2012