2008-11-14 18 views
40

Ich brauche ein reguläres Ausdruckmuster, um nur positive ganze Zahlen zu akzeptieren. Es kann auch eine einzelne Null annehmen.Regex Muster für numerische Werte

Ich möchte keine Dezimalzahlen, negative Zahlen und Zahlen mit führenden Nullen akzeptieren.

Irgendwelche Vorschläge?

Antwort

67
^(0|[1-9][0-9]*)$ 
+1

Sollte es ein optionales Komma enthalten, falls das Format es erlaubt (wie 1.000.000)? – Ben

+5

Nein, es sollte keine Kommas akzeptieren. –

+0

Dies würde die Aufgabe erledigen:^(0 | [1-9] [0-9] * | [1-9] [0-9] {0,2} (, [0-9] {3,3}) *) $ –

3
/^0|[1-9]\d*$/ 
13

"[1-9][0-9]*|0"

Ich würde verwenden nur "[0-9]+" positive ganze Zahlen darzustellen.

+1

wenn ich grepl ("[0- 9] + "," 1111a ") in R, gibt es mir TRUE –

11

Diese Dezimalzahlen ermöglichen (oder ganze Zahlen), dass nicht Start mit Null:

^(([1-9]*)|(([1-9]*)\.([0-9]*)))$ 

Wenn Sie Zahlen zulassen möchten, dass starten mit null, können Sie tun:

^(([0-9]*)|(([0-9]*)\.([0-9]*)))$