Jiriki: Regulärer Ausdruck

Beitrag lesen

Hi Leute,

Ich bastel jetzt seit zwei Tagen an einem regulären Ausdruck unter PHP rum, der mir aus einem String einen Punktewert auslesen soll, der vor dem "Komma" mindestens zwei, höchstens drei Ziffern stehen hat, und danach eine oder zwei Dezimalstellen. Es kann zudem vorkommen, dass ein Prozentzeichen die Zahl abschließt.

Der momentane Stand des regulären Ausdrucks ist:

  
preg_match( "!\b(\d{1,3}\.\d{1,2}%*)[\w,^]!", $stpt[ "test" ], $results )  

Dieser Ausdruck funktioniert für den Beispieldatensatz

STPT: 2004 at Paxton Farm, OH, 99.74 points

insofern, als dass mir preg_match 99.7 ausgibt. Es findet ein Ergebnis, jedoch hat sich preg_match dafür entschieden, nur eine Dezimalstelle auszugeben, dabei soll er mir doch laut dem regexp erst dort mit der Ausgabe enden, wo entweder ein Leerzeichen, oder ein Komma oder das Ende des Datensatzes liegt, oder nicht? Das wäre nach der ersten Dezimalstelle doch nicht gegeben.

Danke für jeden Tipp.