Sebastian Becker: Preis in String ersetzen

Hallo,

in Weiterverfolgung der Aufgabenstellung, einen aus einem Excel-File geparsten String für eine bessere Performance zu cachen, speichere ich diesen jetzt in Textfiles.

Jetzt habe ich aber noch folgendes Problem:

In dem String befinden sich Dollarpreise als Werte, die eigentlich immer aktuell berechnet werden müssten.

Gibt es eine einfache und effiziente Möglichkeit, dies zu lösen?

Der String sieht dann z.B. so aus:
Leckeres Süppchen 2,90 € 3,50 $

3,50 müsste aber gegen (2,90 * Umrechnungsfaktor) ersetzt werden.

Ich vermute, daß man hier am besten mit regulären Ausdrücken weiterkommt - und da bin ich mit meinem Latein am Ende ...

Kann mir dabei vielleicht jemand helfen, oder ggf. andere Lösungsvorschläge unterbreiten?

Danke, Grüße aus Berlin,

Sebastian

  1. Hallo Sebastian,

    Der String sieht dann z.B. so aus:
    Leckeres Süppchen 2,90 € 3,50 $

    3,50 müsste aber gegen (2,90 * Umrechnungsfaktor) ersetzt werden.

    Ich wüde auch vermuten, daß man mit regulären Ausdrücken hier am besten was machen kann, außer die Preise sind alle nur 3-stellig oder sowas, daß man also über die Position allein selektieren kann (wäre wohl performanter als per Regex) - denn das Euro- oder Dollar-Zeichen könnte man als "Fixpunkte" nehmen.
    Ansonsten kannst Du eben etwas in der Art / € ([0-9]{1,3},[0-9]{2}) / probieren, das sollte eigentlich den Betrag finden. Den kannst Du ja dann umrechnen mit Deinem Faktor (evtl. das Komma durch einen Punkt ersetzen fürs Rechnen) und den alten Betrag mit dem neuen ersetzen.

    MfG
    Götz

    --
    Losung für Mittwoch, 1. Februar 2006
    Ich gehe einher in der Kraft Gottes des Herrn; ich preise deine Gerechtigkeit allein. (Psalm 71,16)
    Wenn ihr wisst, dass Gott gerecht ist, so erkennt ihr auch, dass, wer recht tut, der ist von ihm geboren. (1. Johannes 2,29)
    (Losungslink)