Hallo,
ich habe einen Textstring der Uhrzeiten enthält ("hh:mm:ss" oder "h:mm:ss") sowie auch Strings der Form "[d:dd:dd]" (d: digits 0-9) nun sollen nur die Uhrzeiten extrahiert werden - aber nicht die der anderen Form miterfasst werden.
solange ich nur die Uhrzeiten möchte ist es einfach:
$array = StringRegExp ( $text, "([012][0-9]:[0-5][0-9]:[0-5][0-9])|([0-9]:[0-5][0-9]:[0-5][0-9])" , 3 )
aber "[d:dd:dd]" auszuschliessen bereitet mir Mühe.
Versuche mit vorstehnden (?:[^[]) - bzw. abschliessenden (?:[^[]) bringen das gewünschte Ergebnis nur teilweise, weil wenn der $text="1:22:00 blabla 2:33:00" heißt, dann die Zeiten am Anfang bzw. Ende gar nicht erfasst werden.
Am einfachsten ginge es wenn man auch einen Nullstring "" als alternative hätte.
(Bsp.: "((?:[^[])[012][0-9]:[0-5][0-9]:[0-5][0-9](?:[^[]))|([^[][0-9]:[0-5][0-9]:[0-5][0-9][^[])")
Hat jemand eine Idee dazu?
Eventuell könnte man beide Ausdrücke parallel suchen und via Positionskontrolle voneinander trennen...