Forum Webscript.Ru

Программирование => Perl => Тема начата: DartSidius от 23 Июня 2011, 11:46:02

Название: reg exp
Отправлено: DartSidius от 23 Июня 2011, 11:46:02
Есть строка вида [crypt]tex1[/crypt][crypt2]text2[/crypt]

Мне нужно заменить [crypt]tex1[/crypt] & [crypt]tex2[/crypt] на некий код, внутри crypt код постоянно меняется...делаю так...но строка меняется полностью, засасывая всё целиком:

$var=~s/\\[crypt\\](.+)\\[\\/crypt\\]/$dataToCrypt/;
Название: reg exp
Отправлено: arto от 23 Июня 2011, 12:34:26
.+?
Название: reg exp
Отправлено: DartSidius от 23 Июня 2011, 16:00:14
так пробовал..не помогает...приведу полный код

$var = "[crypt]sometext[/crypt][crypt]sometext2[/crypt]";

if($var=~/\\[crypt\\](.+)?\\[\\/crypt\\]/) {
   print "\'$1\'

";
   $var=~s/\\[crypt\\]$1\\[\\/crypt\\]/$crypttext/;
}

выдает в принте целиком строчку : sometext[/crypt][crypt]sometext2
Название: reg exp
Отправлено: DartSidius от 23 Июня 2011, 16:11:01
Туплюю не там поставил \'?\'. СПасибо!