können Sie
^(?!0+[1-9])(?:\d+|\d{1,3}(?:,\d{3})+)(?:[.,]\d+)?$
die regex demo nachschauen. Der negative Lookaheadwird alle Zeichenfolgen fehlschlagen, die mit 1 oder mehreren Nullen gefolgt von einer Ziffer anders als 0
beginnen.
Wenn Sie 00.825
wie Zahlen scheitern wollen, ersetzen Sie das Look-Ahead mit (?!0\d)
:
^(?!0\d)(?:\d+|\d{1,3}(?:,\d{3})+)(?:[.,]\d+)?$
die pattern variation demo See.
Muster Details
^
- Beginn der Zeichenfolge
(?!0+[1-9])
- eine negative Vorschau der Saiten versagt, die mit 1 oder mehr Nullen beginnt mit einer Ziffer andere gefolgt als 0
(oder (?!0\d)
werden alle scheitern Fälle, wenn eine Nummer mit einer 0
gefolgt von einer Ziffer beginnt)
(?:\d+|\d{1,3}(?:,\d{3})+)
- zwei Alternativen:
\d+
-1 oder mehr Ziffern
|
- oder
\d{1,3}
- 1 bis 3 Ziffern
(?:,\d{3})+
-1 oder mehr aufeinanderfolgenden Vorkommen von ,
und dann irgendwelche 3 Ziffern
(?:[.,]\d+)?
- eine optionale Sequenz von .
oder ,
und dann 1 oder mehr Ziffern
$
- Ende der Zeichenfolge.
Ja erlaubt ist 2,3903093 und 29034, 0,33323, 0333 Nicht erlaubt: 2., 078.778 – Gang13
Verwenden [ '^ (?! 0+ [1-9]) (?: \ D + | \ d {1,3} (?:, \ D {3}) +) (?: (\. |,) \ D +)? $ '] (Https://regex101.com/r/lMB2R1/2). Das '(?! 0+ [1-9])' negative Lookahead wird alle Strings, beginnend mit 1 oder mehr Nullen, gefolgt von einer anderen Ziffer als "0", nicht bestehen. –
@ WiktorStribizew .. Danke für die Lösung. Es funktioniert jetzt – Gang13