Hé les gars, question sur regex en PHP!L'expression régulière imprime un sur deux dans le modèle correspondant
Pour le motif donné, un peu comme une syntaxe de terminal shell:
application>function -arg1 value -arg2 value -arg3 value -arg4 value
Je veux analyser les arguments. Ceci est mon code regex
$command=' -arg1 value -arg2 value -arg3 value -arg4 value ';
// note the string begins by a space character and ends by a space character
// now i'm trying to parse arguments
$cmd->arguments=new \stdClass();
preg_replace('`\s-(.*)\s([a-zA-Z0-9-_]*)\s`Ue',
'$cmd->arguments->$1="$2";',$command);
// this regex will pick one matching out of two and returns
$cmd->arguments=stdClass(
[arg1]=>value,
[arg3]=>value
)
arg2 et arg4 sont ignorés. Une idée pourquoi? Merci d'avance!
cool, logique, j'étais vraiment perdu dans les logiques regex pendant un moment ... Merci! – fabjoa
De rien! – jeroen