2017-10-12 12 views
-1

Need Regex, die Übereinstimmung sind positive und negative Zahlen, aber falsch für Zeichenfolge - "-".Regex für Zahlen, aber ohne "-"

Meine regex nicht funktioniert:

^-?[0-9]$ 

Diese Regex gilt für "-", aber ich brauche, so dass sie falsch ist.

-123123; //true 
12321; //true 
-; //false 
asdasd; //false 

Hilf mir bitte.

+0

Welche Sprache benutzen Sie? –

+0

^-? \ D + $ funktioniert für mich – Vladimir

+0

https://stackoverflow.com/questions/7407099/regex-match-numbers-of-variable-length das funktioniert nicht für mich. – korevikov

Antwort

1

benötigen Sie mindestens eine Ziffer, so

^-?\d+$ 

sollte es tun

Oder dies kann besser sein

^(0|-?[1-9]+\d*)$ 

Der zweite Ausdruck ist besser, da es Zahlen verhindert, dass mit Nummern mit vielen Nullen vorangestellt (zB 00000001) und auch -0

+0

Könnten Sie bitte Ihren zweiten Regex erklären? Ich sehe nicht, wie es besser ist von der ersten –

+0

@AleksAndreev die zweite Regex erfordert, dass die Nummer nicht mit einer 0 beginnen, es sei denn, die Zahl ist 0 selbst. "-0 ist auch ungültig. – puhlen

+0

Danke. Es funktioniert." – korevikov