Enostaven regularni izraz za decimalno število z natančnostjo 2
Kakšen je regularni izraz za decimalno število z natančnostjo 2?
veljavni primeri:
123.12
2
56754
92929292929292.12
0.21
3.1
Neveljavni primeri:
12.1232
2.23332
e666.76
Decimalna vejica je lahko neobvezna, vključena pa so lahko tudi cela števila.
258
3
Veljavni žetoni regex se razlikujejo glede na implementacijo. Splošna oblika je:
Bolj kompaktno:
Pri obeh se predpostavlja, da imata obe števili vsaj eno številko pred in eno za decimalnim mestom.
Če želite zahtevati, da je celoten niz število te oblike, izraz ovijte z začetno in končno oznako, kot na primer (v Perlovi obliki):
Če želite ujemati števila brez začetne številke pred decimalko (
.12
) in cela števila z zaključno piko (12.
), hkrati pa izključiti vnos ene same pike (.
), poskusite z naslednjim:Dodano
Delni del je zavit v
()?
, da je neobvezen. Zavedajte se, da to izključuje oblike, kot je12.
Vključno z `^\d+\..?\d{0,2}$``.Dodano
Uporabite
^\d{1,6}(\.\d{1,2})?$
za prekinitev ponavljanja in omejitev na celoten del decimalne vrednosti.Ker je regularne izraze grozno brati, še manj pa razumeti, je tu še besedni ekvivalent:
V večini implementacij regularnih izrazov (vključno z najpogostejšo PCRE) lahko
[0-9]
nadomestite z\d
. Sam sem pustil[0-9]
, saj menim, da je tako lažje berljivo.Tukaj je tudi preprosta skripta Python, ki sem jo uporabil za preverjanje:
Ali ne boste morali upoštevati
e
ve666.76
?S