ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
322
322
EMPFEHLEN
-
Hallo

ich muss aus einem Text eine id auslesen, die minimal 4 und maximal 6 Stellen haben darf numerisch.
z.B.Das Ergebnis aus diesem Sring soll:PHP-Code:$daten = "Text text text blub blub 12587 blub 2782 sdfsdf 27811614146 ad sdf 78";
12587
2782
sein, denn nur diese Zahlen sind ids.
Ich habe bereits versucht:
aber leider wird "27811614146" auch als id erkannt, nur nach 6 Zeichen abgeschnitten.PHP-Code:preg_match_all("/[0-9]{4,6}/", $daten, $var);
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
Gruß Steusi
Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
PHP-Code:$fehler = "dummer Tippfehler";
echo("Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!");
-
Hallo,
schau dir mal unter http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck den Abschnitt "Quantoren" an.
Viel. hilft dir das weiter.
Grüße
> "Open your mind"
> "Open your heart"
> "Open your source"
-
15.04.09 14:20 #4Code :
1
#\s([0-9]{4,6})\s#
Spontan würde ich das so lösen.KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Verwende Wortgrenzen \b:
Code :1
/\b\d{4,6}\b/Markus Wulftange
-
Okay, vielen danke euch
Aber müsste das nicht so auch gehen ? /^[0-9]{4,6}$/
-
Nein. Dieser Ausdruck trifft nur auf Zeichenfolgen zu, die exakt aus vier bis sechs Ziffern bestehen.
Markus Wulftange
-
Wenn nun ein Datum kommt 10.04.2009 dann wird 2009 als ID erkannt. Wie könnte man das verhindern ?
-
16.04.09 17:12 #9
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 :1
%(?=^|\s)[0-9]{4,6}(?=\s|$)%
Zitat von Steve Wozniak
-
Aber das Datum hat ja nur Punkte und keine Leerzeichen 10.04.2009
Warum funktioniert Gumbos methode nichtCode :1
/\b\d{4,6}\b/
-
16.04.09 17:24 #11
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
-
16.04.09 17:34 #12
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
Ein Punkt ist kein "word character".
Aus dem PHP-Manual:
LGA "word" character is any letter or digit or the underscore character, that is, any character which can be part of a Perl "word".Da es nötig zu werden scheint: Ich leiste hier keinen Support über PN. Stellt Rückfragen zu Euren Problemen bitte in Eurem Thread, dann können alle helfen.
Ähnliche Themen
-
[C++] Int und Double erkennen
Von Avedo im Forum C/C++Antworten: 1Letzter Beitrag: 17.01.11, 18:57 -
Herkunftsland erkennen
Von Spranta im Forum PHPAntworten: 4Letzter Beitrag: 26.04.06, 14:08 -
€-zeichen mit vi und sed erkennen - wie?
Von starter_de im Forum Linux & UnixAntworten: 6Letzter Beitrag: 17.05.04, 00:36 -
Bannerklick erkennen
Von Hawkster im Forum PHPAntworten: 5Letzter Beitrag: 15.05.04, 20:32 -
Hardware erkennen
Von DanielBodensee im Forum Delphi, Kylix, PascalAntworten: 0Letzter Beitrag: 09.04.04, 19:36





Zitieren


Login






[PHP][Snippet] Array zu XML konvertieren