Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Добавление пробелов после запятой


Автор: sanich_ 14.5.2008, 19:43
Нужно после запятой, точки, точки с запятой проставить пробел в строке

Как добавить пробел после запятой сообразил,

Код


$string = "слово1,cлово2.cлово3;слово4";
echo preg_replace('/,(.+)/i', ', \1', $string);


А как в эту контрукцию добавить еще 

добавление пробела после "." и после ";"

???

Автор: skyboy 14.5.2008, 20:19
Код

$string= str_replace(array(',','.',';'),array(', ','. ','; '), $string);

или речь о том, чтоб поставить пробел после всех символов конца слова(к тобою указанным добавляются двоеточие, тире, слеши; кроме того, как в троеточии прикажешь пробелы расставлять: после каждой точки?)?

Автор: sanich_ 14.5.2008, 20:43
Цитата(skyboy @ 14.5.2008,  20:19)
Код

$string= str_replace(array(',','.',';'),array(', ','. ','; '), $string);

или речь о том, чтоб поставить пробел после всех символов конца слова(к тобою указанным добавляются двоеточие, тире, слеши; кроме того, как в троеточии прикажешь пробелы расставлять: после каждой точки?)?

Мне нужна не просто замена точек, запятых 

Заменить нужно только в том случае если после точки нет пробела

Т.е. тут только регулярка

Автор: amg 15.5.2008, 07:06
Цитата(sanich_ @  14.5.2008,  20:43 Найти цитируемый пост)
Заменить нужно только в том случае если после точки нет пробела
Код
preg_replace('/([,.;]+)\s*/', '$1 ', $string);
preg_replace('/([[:punct:]]+)\s*/', '$1 ', $string);
Вторая строка - для всех знаков пунктуации. Многоточие не пострадает...

Автор: Druidik25 15.5.2008, 11:59
Извиняюсь можно более понятно. Если уже известно что там не больше одного пробела... то:

Код

$string= str_replace(array(',','.',';'),array(', ','. ','; '), $string);

а потом:
Код

$string= str_replace('  ',' ', $string);

Тобиш, если есть 2 пробела менять на 1... 

Мож и выглядит как решение новичка... Но так понятней... по моему....

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)