2015-06-10 1 views
-1

Было просто интересно, был ли чистый способ заменить все варианты пробелов (полупространство, пространство полной ширины, китайское пространство и т. Д.) Только с обычным пространством?Преобразование пространств всех размеров в стандартное пространство в PHP?

Бонусные баллы за замену нескольких пробелов в строке (например, 3 полуширины или пространства с нулевой шириной или некоторые из них) с одним нормальным пространством.

+2

, когда я слышу термин "Бонусные баллы" первое, что я думаю, что это домашнее задание задание ... – cmorrissey

+0

Если вы используете флаг unocode (UTF-8), то '\ s +' должен делать это, но у меня есть сомнения в том, что php полностью реализует это. – sln

+0

Большинство пропущенных объектов Unicode покрываются ['\ pZ'] (http://www.regular-expressions.info/unicode.html) – mario

ответ

4

Я пойду с очевидным регулярным выражением.

preg_replace('~\s+~u', ' ', 'your input here'); 

См http://php.net/manual/en/function.preg-replace.php

+0

Спасибо. Обновлено до английского + добавлено недостающих разделителей (был длинный день, очевидно). –

+2

'mb_internal_encoding' только эффекты Oniguruma, а не функции PCRE. – mario

+0

Удалите это 'mb_internal_encoding' и добавьте флаг' u', тогда он будет работать ;-) –

Смежные вопросы