Avatar
trnkto
Člen
Avatar
trnkto:

Ahoj, můžete mi někdo poradit kde mam chybu v regulárním výrazu?

^[0-9]{1,9}|[0-9]{1,9}[.][0-9]{2}$

Chtěl jsem od něj 1-999999999 nebo 1.00-999999999.99

Podle různých návodů jsem došel ke výše zmíněnému, ale samozřejmě nefunguje.
Jak to chápu já:
^ - začátek hledání
[0-9] - číslice 0 až 9
{1,9} - počet znaků 1 až 9
"|" - nebo
[.] - znak . (tečka)
{2} - přesně dva znaky
$ - konec hledání

Díky moc

Editováno 6.11.2015 12:47
Odpovědět 6.11.2015 12:46
Nechci být nejlepší, abych se od těch nejlepších mohl učit
Avatar
patrik.valkovic
Šéfredaktor
Avatar
Odpovídá na trnkto
patrik.valkovic:

Nebyo by náhodou jednodušší převést to na double a zkontrolovat, že je to v určitém rozsahu? Než používat RegExp?

Nahoru Odpovědět 6.11.2015 12:49
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
coells
Redaktor
Avatar
Odpovídá na trnkto
coells:

Nezávorkuješ a nekontroluješ počáteční nulu.

^[1-9][0-9]{0,8}(\.[0-9]{2})?$
 
Nahoru Odpovědět 6.11.2015 13:14
Avatar
trnkto
Člen
Avatar
trnkto:

patrik.valkovic:
Myslím, že bych tam musel hledat tu desetinou čárku ne?

coells:

if (!Regex.IsMatch(hodnota, "^[1-9][0-9]{0,8}(\.[0-9]{2})?$"))

asp mi ten escape nebere nemůže to být tedy [.]

Nahoru Odpovědět 6.11.2015 13:26
Nechci být nejlepší, abych se od těch nejlepších mohl učit
Avatar
coells
Redaktor
Avatar
Odpovídá na trnkto
coells:
if (!Regex.IsMatch(hodnota, @"^[1-9][0-9]{0,8}(\.[0-9]{2})?$"))
Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět 6.11.2015 13:29
Avatar
trnkto
Člen
Avatar
Odpovídá na coells
trnkto:

Jéžiš. No to je krása, už to pěkně funguje
Zavináč pamatovat!!!
Děkuju moc

Nahoru Odpovědět 6.11.2015 13:35
Nechci být nejlepší, abych se od těch nejlepších mohl učit
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.