regulärer Ausdruck, um nur Zahlen im Bereich 1-20 zuzulassen

8

Ich möchte den Benutzer dazu bringen, Zahlen im Bereich 0-20 einzugeben, und beide können 01 und 1 eingeben

das ist was ich bisher habe

%Vor%

aber es funktioniert nicht.

    
Gold Skull with Pattern 29.08.2012, 17:16
quelle

3 Antworten

8

Das Problem ist, dass | geringere Priorität hat als ^ und $ , also bedeutet Ihr Muster ^[1-9] oder 0[1-9] oder 1[0-9] oder 2[0]$ : Nur einstellige Werte sind durch ^ eingeschränkt, und nur 20 ist durch $ eingeschränkt.

Sie können entweder ^ und $ in jedem Zweig der Alternation wiederholen oder die Alternation in (?:...) umbrechen, um einen nicht-erfassenden Teilausdruck zu erstellen:

%Vor%

(Ich habe mir auch erlaubt, [0] in 0 zu ändern.)

    
ruakh 29.08.2012, 17:30
quelle
6

Wie wäre es mit

? %Vor%

Das Problem ist, dass 20 ein Sonderfall ist. Der zweite Abschnitt deckt es ab. Der erste Abschnitt deckt den Rest ab. Ich nehme reguläre Ausdrücke im Perl-Stil an, da Sie den Kontext nicht angegeben haben.

    
tristram shandy 29.08.2012 17:28
quelle
3

probiere das

aus %Vor%

0 oder 1 (optional), gefolgt von mindestens einer Ziffer OR 20

    
Victor 'Chris' Cabral 29.08.2012 17:19
quelle

Tags und Links