Mailinglisten-Archive |
Hallo Steffen, 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] Und das ist bei Folgen ganz nett :) ([0-9.,]+(t/kg/g)[^a-z0-9])+ Es kommt halt auf das Format der Eingabe an. Gib mal mehr Livedata, um etwaige Querschläger zu erkennen. Bedenke, auch dass nicht alles mit Regs geht. Manchmal muss mal durchaus zu IFs und Konsorten greifen, weil die Dateieingabe per Hand einem das ganze schöne System zu nichte macht. Das Testen des Zahlenformats würde ich nicht unbedingt in den ersten Reg nehmen. Eine spätere Schleife mit einem preg_match() macht eine Fehlerbehandlung leichter. Gruß Micha -----Ursprüngliche Nachricht----- Von: php [mailto:php-bounces at lists.phpbar.de] Im Auftrag von Steffen Kother Gesendet: Mittwoch, 18. September 2013 13:16 An: php at phpbar.de Betreff: [php] Reg-Echse Hallo Leute, ich benötige seit ewiger Zeit mal wieder eure Hilfe. Mit einem preg_match_all() und Pattern "°((\d{0,3})*(\.?\d{1,3})*(\,?\d{1,2})?)\s*(".$MEs.")°i" hole ich Mengen und deren Einheiten aus einem Feld. Ja, hätte ich früher mal lieber getrennt erfasst und gespeichert. Die Überarbeitung ist angedacht. Dabei ist $MEs = join('|', $ME); und enthält alle möglichen Mengeneinheiten, bspw. kg, t, to usw. Jetzt gibt es dabei zwei Probleme: Problem 1: in "4 Paletten ca. 2t" findet er sowohl 2x "t" als auch "2t" Problem 2: in "410tex 4486kg/600tex5230kg/900tex9303kg" findet er natürlich auch "410t", was aber nicht gewollt ist. Für Problem 1 habe ich eine Variablenumwandlung und -prüfung, die mir "leere" MEs unterbindet. Könnt ihr mir bei Problem 2 helfen? Das lässt sich doch sicher im Pattern realisieren, oder? Vielleicht hat der eine oder andere doch noch eine Option für Problem 1. -- Vielen Dank füre eure Hilfe, 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