Имам малко помощ за regex

macmen

Registered
Здравейте имам следния string

{suject} {email} {vaue} {edi si kakvo}

трябва ми да стане

[0] = subject;
[1] = email;
[2] = value;
[3] = edi si kakvo;
Благодаря Предварително!
 
значи незнам за regex но ако стринговети се разделени с нещо например

PHP:
$var = "subject|email|value|edi si kwo";

$new_var = explode("|", $var);

echo $new_var[0];//това връща subject


echo $new_var[1]; //това връща email


echo $new_var[2];// това връща value


echo $new_var[3];//това връща edi si kwo
 
ммм не не ми варши работа. Аз не знам колко ще са променливите в този string.
 
Човек научи се да обясняваш нищо не ти разбирам нито в първия пост нито сега обясни по точно какво не разбираш
 
Нещо такова.
Код:
$str = '{suject} {email} {vaue} {edi si kakvo}';
preg_match_all("/\{(.*?)\}+/",$str,$res);
echo '<pre>';
print_r($res[1]);
 
Благодаря ти много и след трудните ми обяснения, все пак ме разбра. Аз бях го направил един regex който на нищо не приличаше :)
 
Аз бих добавил още едно решение,въпреки че това на Galli е достатъчно добро.
PHP:
$str = '{suject} {email} {vaue} {edi si kakvo}';
preg_match_all("/(?<={).*?(?=})/",$str,$res);
echo '<pre>';
print_r($res[0]);

Въпреки, че резултите ще бъдат еднакви, този шаблон е една идея по-точен към твоето искане(виж $res[0] от примера на Galli за да разбереш с какво всъщност се намира съвпадение) .Чрез използването на положителни look-behind и съответно look-ahead се търси съвпадение с частта от символен низ, който е между фигурните скоби.Затова не е и необходимо да се помества частта от шаблона ".*?" в група и да се извежда резултата посредством намереното съвпадение в нея.
 

Back
Горе