Gast: preg_match

Beitrag lesen

Hallo,

ich habe die PHP- Dokumentation von preg_match durchgelesen, werde aber nicht schlau daraus.

Ich prüfe einen String. Der darf nur ein- bis sechsstellige Zahlen enthalten. Es kann eine Zahl sein oder mehrere, durch Komma getrennt:
4711,4712,3,5,1

'/^\d{1,6}(?:,\d{1,6}){0,100}$/'

So weit, so gut.

Nun möchte ich erweitern. Einer oder mehreren Zahlen kann ein ! (als Verneinung) vorangestellt werden:
4711,4712,!4713,3,5,1

Ich interpretiere den Teilstring (?:,\d{1,6}) als "ein Komma, gefolgt von ein bis sechs Ziffern ist zulässig"

und ergänze den Teilstring (?:,!\d{1,6}) als "ein Komma und ein Ausrufezeichen, gefolgt von sechs Ziffern ist zulässig". Das klappt aber nicht.

'/^\d{1,6}(?:,\d{1,6})(?:,!\d{1,6}){0,100}$/'

Wie kann ich das Ausrufezeichen einbauen?

Gruß, Gast