Zur Ursprünglichen Frage - Man kann auf die einzelnen Zeichen eines Strings wie folgt zugreifen:
Buchstabe := MeinString[IndexDesBuchstaben];
An welcher Stelle du dann etwas trennst oder noch was du genau suchst ist immer die Schwierigkeit. Am besten geht man so ran das man sich überlegt wodurch man selbst feststellt das etwas nicht mehr dazu gehört.
In deinem Beispiel auf meine Vorgehensweise bezogen:
"Karotten 100 g"
Da seh ich "einen Gegenstand" und danach eine Zahl die ich in der Verbindung gar nicht kenne. Also wäre meine erste Herangehensweise einfach den String bis zur ersten Ziffer zu durchsuchen. Alles vor der Ziffer scheint dann der Text zu sein. Sobald hinter der ersten gefundenen Ziffer keine weitere Ziffer kommt ist die Zahl (also die 100) zu Ende.
Jetzt könnte aber noch so ein Beispiel kommen:
"1000füßler 100 Stück"
Bei dem Beispiel sag ich mir dann, es wäre besser den Sting von hinten durchzugehen. Ganz hinten kommt immer die Einheit, davor dann eine Zahl und davor die Bezeichnung. Wenn man das ganze so sieht passiert später auch kein Missgeschick wenn der Begriff vorn aus 2 Wörtern besteht weil man ja von Hinten anfängt