Preg_match Pattern

Ahoi!

Ich bastel gerade an o. g. Funktion und suche nach einem bestimmten Suchmuster. Da mich Pattern grundsätzlich verwirren bitte ich freundlichst um Hilfe :slight_smile:

Der String, der geprüft werden soll ist eine Ganzzahl, oder enthält Ganzzahlen kommasepariert und dabei bis zu 4 Zahlen. Wie muss dabei zum Teufel nochmal das Pattern aussehen?
Gibt es eine einfachere Lösung als den String 5x - mit 5 verschiedenen Suchmustern - zu prüfen?

Danke schonmal vorab!

Was genau willst du erreichen – willst du auf Einhaltung dieses Formates prüfen, oder ist das gesetzt und du willst nur die Zahlen extrahieren? Letzteres wäre ein Fall für explode am Komma :wink:

Ansonsten, zur Prüfung:
Ganzahl wäre die Zeichengruppe 0-9, ein oder beliebig viele Male; oder alternativ 1-9 genau ein Mal, gefolgt von 0-9 beliebig viele Male (wenn du führende Nullen ausschließen willst).

Und das ganze mindestens einmal, gefolgt von Komma-und-noch-eine-Ganzahl, null bis drei mal.

Hi,

danke erstmal für die Antwort. Es geht mir darum SQL-Injektions auszuschließen ohne mysql_real_escape_string zu nutzen. Ich möchte dabei prüfen, dass der String nur aus Ziffern und Kommata besteht, wobei letztere maximal 3x vorkommen dürfen.

Die GET-Parameter, die die Datenbank zur Abfrage gefüttert bekommt sind da entweder eine Ganzzahl (ID) oder ein, wenn man es so sehen mag, kommasepariertes Array aus bis zu 4 Ganzzahlen.

Ich würde dabei nacheinander if(reg_match(0-9) OR reg_match(0-9,0-9) OR reg_match(0-9,0-9,0-9) OR reg_match(0-9,0-9,0-9,0-9)) prüfen - allerdings geht das bestimmt auch einfacher - nur habe ich keine Idee, wie dabei das Suchmuster auszusehen hat…

/^\d+(,\d+){0,3}$/

So oder so ähnlich. Wie chrisb schon sagte, schließt das natürlich keine führenden Nullen aus, aber das halte ich für irrelevant.

Das denke ich auch. Danke schonmal - probier ich später aus.