Tach!
Also mit welcher REGEX trifft man in einem String eine Zahl aus mindestens 5 und höchstens 10 Stellen?
Das wurde doch beantwortet. Nicht geklärt werden konnte die Frage, ob das Muster mehrfach auftreten darf oder nur einmal. Aber ich meine, für beide Fälle Lösungen gesehen zu haben.
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.
Du darfst den Anfang nicht unterschlagen, denn 5 bis 10 Ziffern können auch nach beliebig vielen anderen Ziffern folgen.
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 davor ebenfalls.
~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!
d vs. \d
dedlfix.