wahsaga: Reguläre Ausdrücke

Beitrag lesen

hi,

preg_match("/^(([0-9]+)) ([^(]+) (([-\d]+))/i",  $string, $results);

Das Problem ist, dass manchmal nur noch die Platzziffer und nicht mehr die Zeit bekannt ist und diese deshalb samt der Klammerung nicht mehr eingegeben wird.
Wie muss ich nun den oberen regulären Ausdruck schreiben, dass mir trotz fehlender Zeiteingabe zumindest noch die Platzziffer und die Mannschaft in das array $results geschrieben wird.

dann solltest du dafür sorgen, dass der letzte teilausdruck nicht vorkommen _muss_, sondern _optional_ ist.

dazu solltest du ihn mit einem weiteren geeigneten modifier versehen, ?, * oder auch {0,1} - je nachdem, was für deine anforderung am besten passt.

(evtl. ist nochmalge umklammerung des kompletten teilausdrucks erforderlich; dass diese klammerung dann eine eigene back reference erzeugt lässt sich aber auch noch ausschalten.)

gruss,
wahsaga