Mailinglisten-Archive |
Hallo, lese am besten alle Zahlen [^0-9.,]([0-9,.]+)[^0-9,.] aus, trimme Kommas, normiere die Zahlen nach Regeln und analysiere das darauf folgende "Wort". Matcht er nicht auf kg und so, musst du die Sonderfälle überprüfen. Input: 1134 kg,645,8 kg,768 kg,468,8 kg Schritt 1: => 1134 =>,645,8 =>,768 =>,468,8 Schritt 2: => 1134 =>645,8 =>768 =>468,8 Schritt 3: => 1134 kg => 645.8 kg => 768 kg => 468.8 kg Input: 3.323 und3.613,4 kg Schritt 1: => 3.323 => 3.613,4 Schritt 2: => 3323 => 3613.4 Schritt 3: => 3323 kg (durch Kopieren des ersten Matches auf eine Größe) => 3613.4 kg Viel Spaß. Beste Grüße/Cordialement: Michael Fuhrmann -----Ursprüngliche Nachricht----- Von: php [mailto:php-bounces at lists.phpbar.de] Im Auftrag von Steffen Kother Gesendet: Dienstag, 24. September 2013 14:55 An: deutschsprachige PHP-Mailingliste Betreff: Re: [php] Reg-Echse Hallo Michael, sorry, dass ich erst jetzt antworte. Meine Arbeit drängelte... > ich teste bei sowas immer auf ein Tennzeichen. Irgendetwas steht immer > davor oder dahinter und begrenzt somit den Bereich. > [^a-z0-9][0-9.,]+(t/kg/g)[^a-z] Dadurch, dass ich mit den Daten meiner Jugend(sünde) klarkommen muss, kann in den Feldern aktuell alles stehen. Mitunter steht eben nichts davor oder alles mögliche - auch dahinter. Nachfolgend mal mehr Livedaten mit dem, was aktuell beim Matchen ("°((\d{0,3})*(\.?\d{1,3})*(\,?\d{1,2})?)\s*(".$MEs.")°i") herauskommt: 801,2 kg und 1041,6k => 801,2 kg 16.712,2kg => 16.712,2 kg 263 kg und 262 kg => 263 kg => 262 kg 15.749kg 12.473kg => 15.749kg => 12.743 kg 20,640 LY => 640 LY ca. 60.000 kg => 60.000 kg 3.323 und3.613,4 kg => 3.613,4 kg 97,6 t in Dezember 05 + Jan.06 => 97,6 t ca. 150t alle Sortimente => 150t 2.642,9 kg und 3.923,6kg => 2.642,9 kg => 3.923,6kg 10.561kg;4.532kg;17.806kg;9.176kg => 10.561kg => 4.532kg => 17.806kg => 9.176kg 1134 kg,645,8 kg,768 kg,468,8 kg => 1134 kg => 645,8 kg => 768 kg => 468,8 kg 15,690LY => 690LY 410tex 4486kg/600tex5230kg/900tex9303kg => 4486kg => 5230kg => 9303kg => ursprünglich gab es noch 410t, 600t, 900t, da ja in tex t für Tonne enthalten (habs vorher durch Ersetzen von Schlüsselwörtern geblcokt) Mit den Werten und Währungen verfahre ich auch so. Klappt momentan doch recht gut. Für die Neugestaltung der Datenerfassung werde ich anders vorgehen, sowohl auf/bei der Eingabemaske als auch bei der Validierung und Speicherung... -- Viele Grüße, Steffen -- ** Allgemeine deutschsprachige PHP-Liste: php at lists.phpbar.de ** Informationen: http://www.phpbar.de http://lists.phpbar.de/cgi-bin/mailman/listinfo/php
php::bar PHP Wiki - Listenarchive