• 2 odgovora
  • 2.387 pregleda
regular expressions, problemcic 06.12.2010. u 22:25 · pre 193 meseci #1
Nije mi jasno sta radim pogresno...
Recimo da se radi o proveri telefonskog broja...
Linija u kojoj proveravam broj u formatu 06x-xxx-xxx(x) izgleda ovako:
Code:
if [[ $l =~ 06[0-9]-[0-9]{3}-[0-9]{3,4} ]]

Provera na svim poljima radi kako treba, osim na poslednjem. If izbacuje false ako je na poslednjem mestu manje od 3 cifre, ali izbacuje true ako je sve vece od 3. Isto vazi i za [0-9]{3}.
Dakle, problem je u tome da provera na poslednjem bloku uvek radi delimicno.
Potpis
Sedam sutlijasa,
za sedam samuraja,
za sedam tramvaja.
Re: regular expressions, problemcic 06.12.2010. u 22:33 · pre 193 meseci #2
Evo, resio sam tako sto sam na kraj uslova dodao jedan $
Znaci ovo:
if [[ $l =~ 06[0-9]-[0-9]{3}-[0-9]{3,4}$ ]]

medjutim, i dalje mi nije jasno zasto prva varijanta ne radi...
Potpis
Sedam sutlijasa,
za sedam samuraja,
za sedam tramvaja.
Re: regular expressions, problemcic 11.12.2010. u 11:35 · pre 193 meseci #3
Citat:
medjutim, i dalje mi nije jasno zasto prva varijanta ne radi...

Ona radi, ali ne onako kako si ti zamislio. Ona traži uzorak u tekstu bilo koje dužine, znači tvoj regular expression bi pokazao true i kada bi imao telefonski broj kao npr:

5555555506x-xxx-xxx

Pravilni regularni izraz za ovaj tvoj slučaj bi uključivao i jedan '^' na početku izraza. E sad ovisi gdje se nalazi takav telefonski broj (u tekstu, html-u), pa prema tome se može i izmijeniti način parsiranja.
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme