Hallo!
Auch, wenn das Thema den OP offenbar nicht mehr interessiert, würde ich trotzdem gerne eine Lösung sehen. Bis dato wurde zwar bei jedem Vorschlag gezeigt, dass er nicht funktioniert, aber einen funktionierenden regulärten Ausdruck hat noch niemand gepostet.
Also mit welcher REGEX trifft man in einem String eine Zahl aus mindestens 5 und höchstens 10 Stellen?
Meine Überlegungen und bisherigen Versuche:
Der Ausdruck muss auf jeden Fall mit ~d{5,10} beginnen und nicht mit ~^d{5,10}, weil die Zahl ja nicht zwingend gleich zu Beginn des zu untersuchenden Strings stehen muss. Das Problem ist das Ende der Zahl, also die letzte Ziffer.
Wenn die Zahl nicht mehr als 10 Ziffern haben soll, bedeutet das: Nach der letzten Ziffer kommt entweder irgend ein Zeichen ausser einer Ziffer, ein Leerzeichen oder _nichts_, weil der String zu Ende ist. Und genau hier stecke ich seit Tagen fest. Ich scheitere ja sogar schon am Weg zur Lösung bei den primitivsten Versuchen.
~d{5,10}\D~ zB. bedeutet für mich: Eine Zahl aus mindestens 5 und maximal 10 Ziffern, gefolgt von einer Nichtziffer. Also müsste der String '123456a' ein Treffer sein. Ist er aber nicht!
Ich bitte um Hilfe!
Mit lieben Grüßen
Melvin Cowznofski
What – me worry?