почему не рабоатет регулярное выажение

Ajax

Guest
почему не рабоатет регулярное выажение

необходимо из текста как в vb коде выбрать конструкцию
{URL=http://slipknotx.h1.ru} пишу программу

PHP:
$text='{B}зайдите на {/B} {URL=http://slipknotx.h1.ru}Slipknotx{/URL}';
ereg("({URL=)([0-9,a-z,A-Z,-,.,:,/,?,=,&,%]{1,})(})",$text,$reg);
print "$reg[0]";
если не писать в $text {B} ну или другие слова с символами { или } , то программа работает то есть $reg[0]='{URL=http://slipknotx.h1.ru}' , а если используются символы { или } то не работает то есть $reg[0] получается равным {B}
посоветуйте пожалуста как исправить
 

madcode

Guest
поставь перед { слэш
и имхо вместо [0-9,a-z,A-Z,-,.,:,/,?,=,&,%]{1,} лучше написать [\0-\xFF]+ и использовать PCRE
 

Ajax

Guest
спасибо со слешем вышло, стало работать.. а можешь объяснить зачем его туда ставитьь?? или это такие общие правила синтаксиса??.
а то что имхо не работает
 

madcode

Guest
попробуй вот так

$text='{B}зайдите на {/B} {URL=http://slipknotx.h1.ru}Slipknotx{/URL}';
preg_match("/\{URL\=.+?\}/si",$text,$reg);
print "\$reg[0]";
 

Yuriy_S

-=PHP-Club=-
так идёт, просто этот форум ставит ещё слеши там где ненужно.
Убири слеш перед переменной, где выводишь ее.
У меня этот пример работает.
 
Сверху