AlexBausW: Regulärer Ausdruck mit optionalem Inahlt

Beitrag lesen

Hallo Michael,

Wert1: 12:34:56
Wert2: bla bla bla
Wert3: [xyz]
Wert4: 1234

was ich bisher als suchmuster mit preg_match_all() benutzt habe:

/Wert1: ([0-9]+):([0-9]+):([0-9]+)\nWert2: (.*?)\nWert3: [(.*?)]\nWert4: ([0-9]+)/

das problem ist, dass Wert3 optional ist und nicht immer vorkommt und wenn der fehlt, dann findet die funktion diesen eintrag nicht

Du kannst um Wert3: [(.*?)]\n eine Klammer setzen und mit ? optional (kein- oder einmal) machen. Damit die zusätzliche Klammer nicht gespeichert wird, solltest Du sie mit (?: beginnen lassen.

Ich habe aber nicht weiter überlegt, ob man den Ausdruck nicht auch ganz anders formulieren könnte. :)

Gruß Alex

--
>> Dass in eine if Schleife zu packen schafft mein 10 jähriges Patenkind. [...]
> Mhhh, wenn man if in Schleifen packt, muss man sich auch nicht wundern, wenn die Patenkinder verwöhnte Luder werden. [...]
[TomIRL und Tom in ?t=64084&m=364291]
ss:) zu:} ls:} fo:| de:[ va:| ch:| sh:( n4:& rl:° br:& js:| ie:| fl:| mo:}