Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Пробелы после точек

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Antah
Отправлено: 12 Марта, 2010 - 14:54:18
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2010  
Откуда: Москва


Помог: 0 раз(а)




Для автоматического добавления пробела после точки в сообщениях пользователей (которые они паталогически стали забывать ставить!) применил при обработке сообщения такой код (пробел для наглядности заменен на подчеркивание):

CODE (htmlphp):
скопировать код в буфер обмена
  1. $mess = preg_replace("/\._/", ".", $mess);
  2. $mess = preg_replace("/\./", "._", $mess);

Две команды - чтобы не задваивать пробел там, где он уже есть: сперва после всех точек удалим пробел (теперь его нет нигде!), потом - поставим пробел после всех точек.
Уперся в многоточие.
Надо добавлять пробел только после тех точек, где следующий символ - не точка.
Переписал код так:

CODE (htmlphp):
скопировать код в буфер обмена
  1. $mess = preg_replace("/\._/", ".", $mess);
  2. $mess = preg_replace("/\.[^\.]/", "._", $mess);

Результат: сжирается следующий за точкой символ (меняется на пробел).
Где рыть?

(Отредактировано автором: 12 Марта, 2010 - 14:55:54)

 
 Top
Champion Супермодератор
Отправлено: 12 Марта, 2010 - 14:56:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




 
 Top
Antah
Отправлено: 12 Марта, 2010 - 15:02:46
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2010  
Откуда: Москва


Помог: 0 раз(а)




Нет, увы, пробовал.

Моя команда машиной понимается так:
Заменить на "точка+пробел" любую точку и символ за ней, если это не точка.

Ваша команда звучит так:
Заменить на "точка+пробел" любую точку и символ за ней, если это не точка или пробел.

Символ после точки сжирается все равно...
 
 Top
Champion Супермодератор
Отправлено: 12 Марта, 2010 - 15:06:04
Post Id



Активный участник


Покинул форум
Сообщений всего: 4350
Дата рег-ции: Авг. 2008  
Откуда: Москва


Помог: 57 раз(а)




Да, стормозил. Вот так:
PHP:
скопировать код в буфер обмена
  1.  $mess = preg_replace('/\.([^\. ])/', '. \1', $mess);
 
 Top
kochan10
Отправлено: 12 Марта, 2010 - 15:11:33
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




Переделал, теперь работает, вот:

Вот так=)

(Отредактировано автором: 12 Марта, 2010 - 15:19:20)

 
 Top
Antah
Отправлено: 12 Марта, 2010 - 15:12:39
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Март 2010  
Откуда: Москва


Помог: 0 раз(а)




Ура! Работает!
Спасибо, Champion!
Улыбка

(Отредактировано автором: 12 Марта, 2010 - 15:13:38)

 
 Top
kochan10
Отправлено: 12 Марта, 2010 - 15:24:18
Post Id


Гость


Покинул форум
Сообщений всего: 118
Дата рег-ции: Дек. 2009  


Помог: 0 раз(а)




опоздал((( жестко опоздал(((
но ведь тоже работает! и проще...
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Регулярные выражения »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB