Ciao ragazzi, ho un problema con una regexp che proprio non riesco a risolvere!


Devo riuscire a costruire un preg replace che esegue una sostituzione come nel seguente esempio:

?cache=1&limit=2 => /1/2

?cache&limit=2 => /cache/2

codice:
preg_replace('/(?:\?|& ) (?: (?:[^=]*)=([^&]*))|(?: ([^=&]*) )/i','/$1',$xyz);
(??:[^=]*)=([^&]*)) di fatto viene considerata ed eseguita correttamente (?: ([^=&]*)) invece no... qualche suggerimento o consiglio a proposito? Non sono proprio il genio delle espressioni regolari... hahah... confido nel vostro sapere


Grazie.