Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск в тексте точек +
 
 автор: Владимир22   (12.08.2007 в 12:17)   письмо автору
 
 

Кто поможет, как можно сделать следующее:
1) В тексте каждый первый символ после найденных точек сделать большим (ucfirst). ?
2) Найти последний символ в тексте и если это не точка, то поставить после него точку. ???

   
 
 автор: Unkind   (12.08.2007 в 12:44)   письмо автору
 
   для: Владимир22   (12.08.2007 в 12:17)
 

<?php
$string 
"String with dot. String with dot";
$string preg_replace("/\.(\s*)([a-zA-ZА-Яа-яЁё]+)/e""'.\\1' . ucfirst('\\2')"$string);
if(
$string[strlen($string) - 1] != "."$string .= ".";
?>


Правда, если и впраду нужно только учитывать точки, а на другие знаки препинания наплевать.

   
 
 автор: Владимир22   (12.08.2007 в 13:22)   письмо автору
 
   для: Unkind   (12.08.2007 в 12:44)
 

Unkind, спасибо, всё работает. Единственное, что если в тексте есть переводы строк, то первый пункт (замена символов на большие) уже не работает... С этим как-то можно бороться?

   
 
 автор: Unkind   (12.08.2007 в 14:58)   письмо автору
 
   для: Владимир22   (12.08.2007 в 13:22)
 

Переводы строк где? Если после точки (новый абзац), то такого быть не должно, т.к. \s включает в себя и переводы строк.
Вот такой код:
<?php 
$string 
"String with dot.\r\n\t string with dot"
$string preg_replace("/\.(\s*)([a-zA-ZА-Яа-яЁё]+)/e""'.\\1' . ucfirst('\\2')"$string); 
if(
$string[strlen($string) - 1] != "."$string .= "."
echo(
$string);
?>

У меня выдаёт "String with dot. String with dot.".

   
 
 автор: Владимир22   (12.08.2007 в 15:51)   письмо автору
 
   для: Unkind   (12.08.2007 в 14:58)
 

Всё правльно, Unkind. Я просто перед обработкой ещё менял c помощью str_replace \r на <br>. Разобрался, ещё раз ОГРОМНОЕ СПАСИБО!

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования