Lightfly: Regulärer Ausdruck

Beitrag lesen

Hi

^([A-Za-z0-9]+);([01]?);([01]?);([01]?);[1]?;([01]);([01]);([01]);([01])

Der sollte eigentlich auf

STBK038N;1;1;1;;0;0;0;0;0;0
STBKNBWXP004;1;1;1;1;1;0;0;0;0;0
STBKWSWXP020;1;;0;;0;0;0;0;0;0

matchen, richtig?

Du hast auch die Möglichkeit nach einer gewissen Anzahl eine Ausdrucks zu Suchen. Somit wird dein Regex übersichtlicher:

/^([A-Za-z0-9]+)(;[01]?){10}$/

(Dieses Regex würde übrigens auf alle drei deiner Beispiele matchen, ungeachtet ob der Unterschied in deinem Regex zwischen den Klammern 1-3, 4 und dem Rest beabsichtigt war)

Das "{10}" bedeutet das der vorangehende Teil "(;[01]?)" 10mal vorkommen muss. Auch Ausdrücke wie {8,10} sind möglich, das würde dann bedeuten der vorangehende Teil muss zwischen 8 und 10mal vorkommen (inkl. 8 und 10).

gruss

lightfly