ID erkennen

hoctar

Erfahrenes Mitglied
Hallo :)
ich muss aus einem Text eine id auslesen, die minimal 4 und maximal 6 Stellen haben darf numerisch.
z.B.
PHP:
$daten = "Text text text blub blub 12587 blub 2782 sdfsdf 27811614146 ad sdf 78";
Das Ergebnis aus diesem Sring soll:

12587
2782

sein, denn nur diese Zahlen sind ids.

Ich habe bereits versucht:
PHP:
preg_match_all("/[0-9]{4,6}/", $daten, $var);

aber leider wird "27811614146" auch als id erkannt, nur nach 6 Zeichen abgeschnitten.
Wie kann ich nur Zahlen rausfiltern die min. 4 und max. 6 Stellen haben ?
 
Also, so einfach ist das nicht außer ich kenne eine Funktion gerade nicht, ich würde die Stringlänge ermitteln und dann nach " " Leerzeichen suchen, und damit trennen, dann sind alle Wörter allein in einer FOR-Schleife würde ich die länge jedes Wort prüfen und ob es numeric ist!

Oder nimmst deine Funktion und lässt alle von 4 bis 7 Zeichen ermitteln, danach prüfst du deine gefundenen Zeichenketten auf die länge, alle die länger als 6 sind fliegen raus :-)
Nicht gerade schön, aber klappt :D
 
Nein. Dieser Ausdruck trifft nur auf Zeichenfolgen zu, die exakt aus vier bis sechs Ziffern bestehen.
 
Mittels look-ahead und look-behind Assertions kann nachvollzogen werden, ob vor und nach dem Treffer die entsprechenden Bedingungen zutreffen. Diese sind in deinem Fall Whitespaces und / oder Beginn und / oder Ende des String:
Code:
%(?=^|\s)[0-9]{4,6}(?=\s|$)%
 
Aber das Datum hat ja nur Punkte und keine Leerzeichen 10.04.2009
Warum funktioniert Gumbos methode nicht
Code:
/\b\d{4,6}\b/
 
Zurück