PHP Code Snippet - Preg Replace, чтобы обеспечить только 1 пробел между словами в строке

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

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

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

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

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

Какие-нибудь фрагменты кода?

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

1 ответ

Решение

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

<?php
$my_str = 'Hello,    too  many      spaces!';
$my_str = preg_replace('#[\s]+#', ' ', $my_str);
echo $my_str; // returns 'Hello, too many spaces!'
Другие вопросы по тегам