PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : beträge ohne lehrzeichen erkennen - regex


romanb
31.12.2009, 01:20
Hallo,

ich komme gerade ins schleudern... ich muss aus einem Report die Umsätze pro Standort auslesen.
Das hatte ich ganz einfach mit Variablen Zuordnung gelöst, da zwischen jeder neuen Umsatz Zahl mindestens immer ein Lehrzeichen war.

Es gibt nun aber Fälle, da kleben die beiden Zahlen aneinander - wie z.B. "0.001,953,356,763.12". hier ist ein umsatz für Standort 3 "0.00" und der für Standort4 ist "1,953,356,763.12".




[Business] [PL] [!FC]
Kosten [Cost]




Lieferant1 Standort1 Standort2 Standort3 Standort4
Kosten 12.30 92,170,523.37 0.001,953,356,763.12

Lieferant1: Kosten
Standort1: 12.30
Standort2: 92,170,523.37
Standort3: 0.00
Standort4: 1,953,356,763.12

Mit welchem regex kann ich es so auslesen, dass er mir immer die korrekte zahl gibt... also für standort3 \d*\.\d{2}) und für standort4...

Die Variable "Cost" (im ersten code ersichtlich) muss gegen diesen Regulären ausdruck getauscht werden.

hat jemand eine Idee wie das funktionieren könnte?

Vielen Dank und schöne Grüße!


Buddyveli
31.12.2009, 01:27
Habe ich es richtig verstanden, dass die einzelnen Werte durch Leerzeichen und Punkte getrennt werden? Wenn ja, müsstest Du den String einfach nur nach diesen Zeichen durchsuchen.

MfG
Buddyveli

kill4h`
31.12.2009, 13:01
Nimm eine Zeichenklasse als Splitelement. Diese kann dann Punkte/Kommas/Whitespaces enthalten. Diese quantifizierst du wie gewünscht und fertig ist die Laube.

romanb
03.01.2010, 10:17
das problem ist, es gibt keine splitelemente. - kein "." ",", etc.... beiden zahlen hängen zusammen...0.001,953,356,763.12

kill4h`
03.01.2010, 12:45
Wenn die Zahlen zusammen hängen, benötigst du irgend eine Regel, wie diese Verkettung abläuft. Ist z.b. der Umsatz für Standort 1 immer 4 Zeichen lang, oder wird er immer in der Form ##.##### notiert (wobei eine # für [0-9] steht). Ansonsten wirst du mit regulären Ausdrücken nicht weiter kommen.