Regulären Ausdruck übereinstimmen Dezimalstellen, mit oder ohne führende Nullen
^([0-9]*[1-9][0-9]*(\.[0-9]+)?|[0]+\.[0-9]*[1-9][0-9]*)$
Ich weiß nicht regulären Ausdrucks.
Über regulären Ausdruck nicht zulassen Eingang .2 .aber es können alle anderen Dezimalstellen wie 0.2 , 0.02 etc . Ich brauche, um diesen Ausdruck erlauben, die Anzahl, wie .2 ,.06 , etc.....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern Sie einfach die
+
nach[0]
in eine ansterisk `*":So, anstatt zuzulassen, dass eine oder mehrere Nullen vor dem Punkt, nur die Möglichkeit 0 oder mehr.
Ich mag diese regexp für floating-point-zahlen, die ziemlich schlau, dass es nicht passen
0.0
als eine Nummer. Es erfordert mindestens eine Zahl ungleich null auf beiden Seiten von der Zeit. Dachte, ich würde brechen es in seine Teile zu bieten, ein tieferes Verständnis von es.Den regexp noch zwei kleinere Muster innerhalb der it, die ersten Spiele Fällen, in denen die Zahl >= 1 (mit mindestens einem nicht-null-Zeichen Links von der .) Optional erlaubt für einen Zeitraum mit einem oder mehreren nachgestellten zahlen. Die zweite entspricht <1.0 und sorgt dafür, dass es mindestens einen nicht-null-Ziffer auf der rechten Seite des dot.
Johannes' Antwort schon gibt Sie die
[0]*
Lösung für das problem.Paar regexp-Verknüpfungen, könnten Sie ersetzen Sie jede Instanz von
[0-9]
mit\d
in den meisten regexp-Aromen. Auch[0]
nur Spiele0
so dass Sie könnte genauso gut mit0*
statt[0]*
. Die Letzte regexp:Ich würde dieses:
Dies erlaubt Anzahl Ausdrücke, beginnend mit entweder
Erlaubt:
Aber nicht:
Können Sie auch einen einfachen Ausdruck wie:
Ersetzen Sie es mit:
oder noch kürzer: