Forum Webscript.Ru
		Программирование => Perl => Тема начата: C++ от 10 Апреля 2003, 10:35:38
		
			
			- 
				Есть текст, в котором я ищу подстроки (их много), есть список. Как наиболее быстро, заменить найденные подстроки на определенные элементы из списка, элементы определяются в зависимости от вида найденной подстроки.
 Сам шаблон:m||
 То что будет находится между :type=TYPE1¶m=1¶m=2¶m=3
 type - один из двух списков,params - значение в списке.
 Заранее благодарю!
- 
				Ээээ....а для тупых пример можно?
			
- 
				Не очень корректно вопрос поставил.....
 Есть HTML, в нем содержится что-то на подобие SSI вставок.
 Мне необходимо найти эти вставки, разобрать их содержимое и заменить на данные из списка, в зависимости от параметров.
 Дело в том, что этих вставок может быть очень много + элементы списка не должны повторяться в HTML (после замены).
 Например
 и т.д.
 type - номер списка (1 или 2)
 param1 - значение элемента[i][0]
 param2 - значение элемента[i][1]
 Вот в зависимости от значений param1 и param2 нужно в списке выбрать элемент (не вставленный выше в HTML)
- 
				если я правильно понял, количество param-ов фиксировано (а именно, их три - type, param и param1) для каждой вставки..
 
 тогда что-то вроде
 $c =~ s//Func($1,$2,$3)/ge;
 
 ну а в функции Func определяется код вставки в зависимости от параметров..
- 
				
 если я правильно понял, количество param-ов фиксировано (а именно, их три - type, param и param1) для каждой вставки..
 
 
 Нет, количество параметров не фиксировано, их может быть от одного, до 6....
- 
				C++ 
 тогда лучше так:
 $c =~ s//Func($1,$2)/ge;
 в функцию func таким образом передадутся номер type (т.е 1 или 2) и переменная-список $p="param=1¶m=2¶m=5..."
 
 @params = split /&/, $p;
 
 всё, есть список нужных параметров в виде
 @params=("param=1", "param=2", "param=5")..