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

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

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

 

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

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

тема: Проблема в замене '''text''' на <b>text</b>
 
 автор: Maxam   (10.05.2010 в 22:23)   письмо автору
 
 

Пытаюсь поменять в строке '''text''' на <b>text</b>:
$text = preg_replace ( "#'''(.*)'''#i", "<b>$1</b>" , $text ); # [b][/b]

В результате если ввести текст:
'''test''' '''ewe'''

Получается на выходе:
<b>test''' '''ewe</b>


Почему ?

  Ответить  
 
 автор: Maxam   (10.05.2010 в 22:24)   письмо автору
 
   для: Maxam   (10.05.2010 в 22:23)
 

Должно быть:
<b>test</b> <b>ewe</b>

Что не учёл?

  Ответить  
 
 автор: neadekvat   (10.05.2010 в 22:57)   письмо автору
 
   для: Maxam   (10.05.2010 в 22:24)
 

Сделайте его ленивым
(.*?)
должно помочь, по идее..

  Ответить  
 
 автор: Maxam   (10.05.2010 в 23:35)   письмо автору
 
   для: neadekvat   (10.05.2010 в 22:57)
 

И помагает и нет!

В примере что я привёл - заработало, спасибо, но если применяю к ссылкам (обработка http://(.*?)) - не помагает!

  Ответить  
 
 автор: neadekvat   (11.05.2010 в 00:10)   письмо автору
 
   для: Maxam   (10.05.2010 в 23:35)
 

Не понял про последнее - каким шаблоном вы пользуетесь и какие строки подставляете?

  Ответить  
 
 автор: Maxam   (11.05.2010 в 01:49)   письмо автору
 
   для: neadekvat   (11.05.2010 в 00:10)
 

По поводу ссылок я создал отдельно тему (админы тут говорят, что на каждый отдельный вопрос лучше отдельную тему) - http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=73808&page=1.

  Ответить  
 
 автор: Trianon   (10.05.2010 в 23:57)   письмо автору
 
   для: Maxam   (10.05.2010 в 22:23)
 

потому что в (.*) набор сопоставляемых символов ничем не ограничен.

  Ответить  
 
 автор: Tonik992   (11.05.2010 в 23:27)   письмо автору
 
   для: Trianon   (10.05.2010 в 23:57)
 


$text = "'''test''' '''ewe'''";
$text = preg_replace("#'''([^\']+)'''#i","<b>$1</b>",$text);
echo $text;

А попробуйте такую конструкцию

  Ответить  
 
 автор: Maxam   (12.05.2010 в 00:03)   письмо автору
 
   для: Tonik992   (11.05.2010 в 23:27)
 

Тоже работает, как и с:
(.*?)

  Ответить  
 
 автор: Tonik992   (12.05.2010 в 00:10)   письмо автору
 
   для: Maxam   (12.05.2010 в 00:03)
 

Всмысле, я что-то не понял как он работает в твоем случае для ссылок?

  Ответить  
 
 автор: Maxam   (12.05.2010 в 01:45)   письмо автору
 
   для: Tonik992   (12.05.2010 в 00:10)
 

Я вообще запутался с этими регулярными. Очень много тегов внедрил и теперь они путаются. Не знаю, что бы сделать...

  Ответить  
Rambler's Top100
вверх

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