Forum Webscript.Ru
		Программирование => Регулярные выражения => Тема начата: Rodent от 31 Марта 2006, 03:26:21
		
			
			- 
				Доброе время суток всем.
 
 У меня к Вам вопрос. Я тут пишу что-то наподобии форума... я конечно понимаю, что нет смысла изобретать велосипед по-новой, когда есть столько альтернатив, но хочется чего-нить своего... да и процесс обучения на своих и других ошибках очень занимателен. :-))
 Так вот мне нужно что-то наподобии vb-кода, что в общем и здесь присутствует.
 
 На данный момент насочинял вот это
 
 // обработка ссылок
 $string = preg_replace("#(https?|ftp)://\\S+[^\\s.,>)\\];\'\\"!?]#",\'\\\\0\',$string);
 
 // обработка почты
 $string = eregi_replace (\'[_a-z0-9-]+(\\.[_a-z0-9-]+)*@[a-z0-9-]+(\\.[a-z0-9-]+)*\', \'\\\\0\', $string);
 
 //  шрифт жирный
 $string = eregi_replace (\'(\\[b])([^<>]+)(\\[/b])\', \'\\\\2\', $string);
 
 // шрифт курсив
 $string = eregi_replace (\'(\\[i])([^<>]+)(\\[/i])\', \'\\\\2\', $string);
 
 //  рисунок из определенной папки с определенными размерами
 $string = eregi_replace (\'(\\[img])([a-z0-9]+)(.)(gif|jpg)(-)([0-9]+)(-)([0-9]+)(\\[/img])\', \' \', $string); \', $string);
 
 // ссылка сложная
 $string = eregi_replace (\'(\\[u=)([a-zA-Z0-9_.:?&=]+)(])([^<>]+)(\\[/u])\', \'\\\\4\', $string);
 
 // ссылка простая
 $string = eregi_replace (\'(\\[u])([a-zA-Z0-9_.:?&]+)(\\[/u])\', \'\\\\2\', $string);
 
 
 Вопрос правильно ли?
 Так как если хочу вставить [u=http://gl.9may.ru/](http://gl1x100x100.jpg-100-100)[/u]
 то получается какая-то бредятина... могу ли я при моем описаниии выше так делать? по-отдельности работает, вместе нет.
 
 Поэтому прошу вашей помощи и оценки:
 1. правильность написания
 2. можно ли при такой обработке использовать вложенные тэги
- 
				ИМХО, не с шаблонами из пар тегов работать надо, обрабатывая всевозможные применения, а ненужное из самих тегов удалять, а потом в большинстве случаев делать:
 [tag] заменить на
 [/tag] заменить на
 тогда и вложенные теги тоже будут обрабатываться, т.к. то, что между открытым и закрытым тегом вообще в расчет не попадает и замена будет строковой функцией проходить.
- 
				Не понял...
 Yukko это ты про теги работы с текстом (жирный, курсив)
 а остальное???