Steht die Zahl immer am Anfang? Dann könntest du vom Beginn aus die Zeichen einzeln prüfen, ob sie eine Ziffer darstellen. Sobald der erste Buchstabe kommt, brichst du ab, und machst aus dem bis dahin gelesenen Substring eine Zahl.
Das ganze hängt natürlich davon ab, wie genau deine Strings aussehen dürfen.
Regex ist langsam. Ein String ist ein char-Array, so dass du mit der foreach-Schleife durch den String iterieren kannst. Mit char.IsDigit(charValue) fragst Du ab, ob es ein Zeichen ist.
Bitte doch aber nicht für so einen Schnulli! Die Vorgehensweise ist eine einzige Schleife und das wars. Prüfen ob Zahl, wenn ja Zeichen an neuen String anhängen und anschließend als int/double zurückgeben. Man kann auch mit Kanonen auf Spatzen schießen!
Regexps kannst du gern bei komplexen Sachen verwenden um z.B. eMail-Adressen zu verifizieren.
das stimmt scho das regexp sicher für so dinge gemacht sind
trotzdem is meiner ansicht nach eine regexp schöner als irgend ne schleife drumrum
is warscheinlich ansichtssache wies der programmierer lieber mag
Mich würde aber mal interessieren, wie du den Ansatz bei regulären Ausdrücken machst. Erst schreibst du den Query (für Anfänger sehr kompliziert), dann verwendest du in PHP z.B. preg_match_all (Regexps in C# habe ich noch nie benutzt, daher das PHP Beispiel), dann gehst du alle Treffer mittels Schleife durch, hängst sie an einen String an und gibst sie als Zahl zurück.
Wo ist hierbei der Vorteil von Regexps? Imo verkompliziert man die Sache hier nur.