Wie kann ich mit diesem regulären Ausdruck auch negative Zahlen abgleichen? Dieser reguläre Ausdruck funktioniert gut mit positiven Werten, aber ich möchte, dass er auch negative Werte zulässt, z. B. -10, -125,5 usw.
^[0-9]\d*(\.\d+)?$
Vielen Dank
Antworten:
Sie sollten zu Beginn einen optionalen Bindestrich hinzufügen, indem Sie hinzufügen
-?
(?
ist ein Quantifizierer , der ein oder null Vorkommen bedeutet ):Ich habe es in Rubular mit folgenden Werten überprüft:
und beide stimmten wie erwartet überein.
quelle
^-?[0-9]\d*(\.\d+)?$
^[-+]?[0-9]\d*(\.\d+)?$
Einige Beispiele für reguläre Ausdrücke:
Positive Ganzzahlen :
Negative Ganzzahlen :
Ganzzahl :
Positive Zahl :
Negative Zahl :
Positive oder negative Zahl :
Telefonnummer :
Telefon mit Code :
Jahr 1900-2099 :
Datum (TT MM JJJJ, TT / MM / JJJJ usw.):
IP v4 :
quelle
Ich weiß nicht, warum du das zuerst brauchst
[0-9]
.Versuchen:
Aktualisieren
Wenn Sie sicher sein möchten, dass Sie eine Ziffer an der Stelle haben, verwenden Sie
quelle
^-?\d+(\.\d+)?$
sollte funktionieren, wenn das der Fall istAKTUALISIERT (13/08/2014): Dies ist der beste Code für positive und negative Zahlen =)
Ich habe es mit diesen Zahlen versucht und funktioniert gut:
quelle
-*
zu,-?
weil es übereinstimmt-------------
.Dies erlaubt ein
-
oder+
Zeichen nur, wenn eine Zahl folgt:quelle
Dies erlaubt sowohl positive als auch negative ganze Zahlen
quelle
Ich habe einige Experimente über Regex in der Django-URL, die negative bis positive Zahlen erforderten
Konzentrieren wir uns auf diesen
(\-\d+|\d+)
Teil und ignorieren andere. Dieses Semikolon|
bedeutet ODER in Regex. Dann stimmt der negative Wert mit diesem\-\d+
Teil überein und der positive Wert in diesen\d+
quelle
Dies funktionierte für mich und erlaubte sowohl negative als auch positive Zahlen :
Bei Verwendung von C #:
quelle
Fügen Sie einfach einen 0- oder 1-Token hinzu:
quelle
Nur für negative Zahlen ist dies perfekt.
quelle
akzeptiert positive oder negative Dezimalwerte.
quelle
Regulärer Ausdruck für Zahl, optionaler Dezimalpunkt, optionales Negativ:
funktioniert für negative Ganzzahl, Dezimalzahl, Negativ mit Dezimalzahl
quelle
ermöglichen:
quelle
Wenn Sie dies haben
val="-12XXX.0abc23"
und nur die Dezimalzahl extrahieren möchten,^-?[0-9]\d*(\.\d+)?$
hilft Ihnen dieser reguläre Ausdruck ( ) in diesem Fall nicht, dies zu erreichen.Dies ist der richtige Code mit dem richtigen Erkennungs-Regex:
quelle