Ich habe Schwierigkeiten, die richtige Regex für Dezimalzahlen zu finden, die das Kommatrennzeichen enthalten.Regex eine Dezimalzahl mit Komma
Ich habe ein paar andere Fragen zu diesem Thema im Allgemeinen aber keine der Antworten wirklich funktioniert finden, wenn ich sie getestet
Das Beste, was ich so weit gekommen ist:
[0-9]{1,3}(,([0-9]{3}))*(.[0-9]+)?
2 Hauptprobleme so weit:
1) Es zeichnet Zahlen mit Leerzeichen zwischen ihnen auf "3001 1", statt sie in 2 Übereinstimmungen zu teilen "3001" "1" - Ich sehe nicht, wo ich Platz in der Regex erlaubte.
2) Ich habe ein generelles Problem mit dem Anfang \ Ende der Regex.
sollte die Regex:
3,001
1
32,012,111.2131
aber nicht:
32,012,11.2131
1132,012,111.2131
32,0112,111.2131
32131
Außerdem mag ich würde es zum Spiel:
1.(without any number after it)
1,(without any number after it)
as 1
(ein Komma oder Punkt, an dem Ende der Nummer sollte übersehen werden).
Vielen Dank! .
Zunächst, wenn die Regex-Bibliothek Ihrer Sprache dies bereits tut, sollten Sie Ihr Muster wahrscheinlich an beiden Enden verankern. Andernfalls stimmt jede Zeichenfolge mit mindestens einer Ziffer überein. – cHao
Sie haben Leerzeichen in der Regex mit dem Punkt ('' '.''') erlaubt, der zu jedem Zeichen passt. Entkomme dem Punkt ('' '\ .'''), um nur der Periode zu entsprechen. – creemama
Ich glaube nicht, dass das zweite und dritte Problem überhaupt Probleme sind. Soweit ich das beurteilen kann, werden sie nicht mit dem übereinstimmen, was sie nicht sollen. –