phpbar.de logo

Mailinglisten-Archive

[php] Reg-Echse

[php] Reg-Echse

Michael Fuhrmann technik at piaunddirk.de
Di Sep 24 16:35:46 CEST 2013


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



Mehr Informationen über die Mailingliste php

php::bar PHP Wiki   -   Listenarchive