Regularni vyraz pro urceni korektni e-mailove adresy
Zdenek Pytela
letty na mrakoplas.phil.muni.cz
Pátek Květen 28 08:27:27 CEST 1999
Lukas Horalek píše:
> Hezky dobry den,
>
> rad bych svym uzivatelum (na Radary.CZ - pozn.aut.) casem umoznil
> automaticke prihlasovani (..si svych e-mailovych adres), nicmene bych se
> rad vyhnul zadavani nesmyslnych adres (zname uzivatele, ze?), aby s tim
> posleze chudak sendmail nemel problemy...
>
> Jde mi tedy o toto:
>
> Mam ten dojem, ze e-mailova adresa ma striktne definovano, co smi a nesmi
> obsahovat za znaky. Konkretne jde o [0-9], [a-z], [A-Z], podtrzitko,
> pomlcka, tecka a zavinac, samozrejme - kdyby neco chybelo, tak me opravte.
>
> Potreboval bych co nejrozumnejsi pravidlo (implantovane do grepu, sedu, ci
> neceho podobneho), ktere by prijalo vstupni retezec od uzivatele, overilo
> by existenci nasledujicich znaku, a vysledek by stacil - 0/1, tedy
> adresa je/neni korektne zadana.
>
> Pokud by to dokazalo hlidat i dalsi nejapnou vec - tedy nesmyslnou
> existenci vice zavinacu ci tecek vedle sebe (adresy typu
> "ja na jsem@ale na vtipalek..haha..cz"), vubec by to nebylo spatne.
>
> Vlastni existenci domeny neni tak zivotne dulezite si hlidat, prip. to uz
> bych si z proverene adresy vydumpoval (a tedy nasledne zavrhl adresy typu
> "nekdo na nejaka_neexistujici_domena.hej") a nasledne zareagoval...
Neexistující doménu regulárním výrazem jednoduše nezjistíte.
Ale mohlo by vám stačit velmi jednoduché pravidlo:
\w[\w-.%]+@[\w-.]+.[a-z]{2,3}
je to rozšířený rv, jak ho používá např. perl. Pozor na nastavení národního
prostředí.
--
--Zdeněk Pytela, <letty na mrakoplas.phil.muni.cz>
Další informace o konferenci Linux