млин эти регулярные выражения

Vital_N

Новичок
млин эти регулярные выражения

помогите плиз, задача такая в строке есть участки {Input_name1} {Input_name2}
надо заменить на <input type=text name = name1> и т.д. - никак не могу составить рег выражения для preg_replace

help :(
 

Kirs

Fireman
Re: млин эти регулярные выражения

PHP:
$x = "{Input_name1} {Input_name2}";
$x = preg_replace("/\{([^}]+)\}/", "<input type=text name=$1>", $x);
 

Vital_N

Новичок
Спасибо, но это выводит
<input type=text name=Input_name1>

а надо - <input type=text name=name1>

-~{}~ 10.09.04 22:40:

т.е. выражение должно включать {Input_последовательность латинских символов и /или цифр} и заменять на <input type=text name=последовательность латинских символов и /или цифр>
 

Kirs

Fireman
Тогда так:
PHP:
function xxx($x) {
	return "<input type=text name=".substr($x, strpos($x, "_") + 1).">";
}

$x = "{Input_name1} {Input_name2}";
$x = preg_replace("/\{([^}]+)\}/e", "xxx('$1')", $x);

Хотя тебе достаточно этого... что то я загнул:
PHP:
$x = preg_replace("/\{Input_([^}]+)\}/", "<input type=text name=$1>", $x);
 

Vital_N

Новичок
Спасибо огромное, но все же есть баг - выводит

<input type=text name=name1><input type=text name=name2><input type=text name=>

откуда взялся последний пустой элемент,
 

Kirs

Fireman
Не должно быть. Проверь входящие данные повнимательней.
 

Vital_N

Новичок
Автор оригинала: Kirs

Хотя тебе достаточно этого... что то я загнул:
PHP:
$x = preg_replace("/\{Input_([^}]+)\}/", "<input type=text name=$1>", $x);
А вот это прекрасно работает, спасибо!!!!!!!!!!!!!!
 
Сверху