Hlavní navigace

Vlákno názorů k článku Regulární výrazy v PHP: Řetězce od Coolfighter - Clanek je k nicemu a o nicem -...

  • Článek je starý, nové názory již nelze přidávat.
  • 6. 11. 2003 18:30

    Coolfighter (neregistrovaný)

    Clanek je k nicemu a o nicem - tem, kteri se v regexp vyrazech vyznaji jen poskytuje vitanou moznost zepsout autora za chyby, ti, kteri v nich zatim tapou a doufali, ze jim pomuze, musi byt nutne zklamani.
    Nicmene regulani vyraz, ktery by overil sparvny format emailu by mohl vypadat zhruba takto (jednotlive casti se pokusim vysvetlit ponekud lepe nez autor clanku):

    ^([A-Za-z0-9-_\.]+)@([A-Za-z0-9\.]+)\.([a-z]{2,7})$

    Znak ^ rika, ze jsme na zacatku retezce. Dale nasleduje specifikace moznych znaku, ktere se mohou vyskytnout v casti pred zavinacem - tedy alfanumericke znaky a podtrziko, pomlcka ci tecka (musi byt "odescapovana" zpetnym lomitkem, cimz ztrati svuj specialni vyznam zastupce libovolneho znaku). Znak "+" rika, ze tato cast nesmi byt prazdna, resp. musi obsahovat alespon jeden ze specifikovanych znaku (zde by bylo na miste rict, ze by asi nebylo dobre povolit adresu typu _@domena.tld atp., ale teoreticky to mozne je).
    Nasleduje zavinac jakozto neoddiskutovatelne povinny znak. Cast za nim specifikuje domenu - tato cast se muze opet skladat pouze z alfanumerickych znaku nebo tecky (pokud se jedna o 3rd level domenu - napr. user@3rdlevel.2ndlevel.tld atp.). Pokud budeme mene striktni, muzeme i v teto casti povolit i podtrzitko a pomlcku.
    Dale nutne musi nasledovat znak tecka a ve finale 2 - 7 znaku vyhradne v mezich malych alpha znaku (a-z)! (nezapomenme na nove tld domeny dosahujici teto delky! - tld domena culture).
    Na zaver se omlouvam za ponekud delsi vylev, obvykle nemam ve zvyku clanky na rootu komentovat, ale tento mi prisel - bohuzel - tak spatny, ze jsem si to neodpustil ;)

  • 6. 11. 2003 20:33

    Autor (neregistrovaný)

    Nepatrim mezi lidi, kteri nesnesou kritiku, ale kritiku, ktera je spatna alespon bez citovych vylevu opravim :)

    Coolfighter napsal:
    "tem, kteri se v regexp vyrazech vyznaji jen poskytuje vitanou moznost zepsout autora za chyby"
    Tak se podivame na tvoje chyby a neni jich malo:
    1) Co je v prvni casti retezce to 0-9-_ ? Mnozina znaku 0 az 9 az pomlcka? Ma to byt samozrejme 0-9\-_ :)
    2) V casti za zavinacem si necitoval znak - (tedy \-).. Neprosel by tedy napriklad email coolfighter@e-mail.cz
    3) Coolfighter napsal: "a ve finale 2 - 7 znaku vyhradne v mezich malych alpha znaku (a-z)!"
    Tak v mezich vyhradne malych alpha znaku? Nejsem prvni kdo to rika takze budu citovat; Vega napsal:
    "koncovka může být i velkejma písmenama :) Sice to píšou jenom prasata, ale chci tě vidět to písemně vysvětlovat na svym webu dementnim uzivatelum... Misto toho radši použij strtolower :)"
    Dodavam jen, ze uz jsem se setkal s lidmi co mi poslali mail jako neco.CZ

    Tak to jsem mel na srdci. V necem jsem sice napovedel ostatnim jak to ma byt nejlepe (to stejne neni na skodu), ale tvuj komentar je takovy, ze jsem si to neodpustil :)

  • 6. 11. 2003 21:03

    Johanka (neregistrovaný)

    Jen k tomu, ze BFU se v clanku nic nedozvi - priznavam otevrene, ze ja sama coby editor jsem autora navedla, aby to pojal tak, ze uplne zaklady nebude prilis podrobne prozivat (v puvodni verzi tam byl dost dlouhy uvod do nich) - vetsina lidi v nejake forme regularni vyrazy zna (z bezneho sebu, perlu, vimu apod.), jde o to, ze jsou jich ledasjake druhy a rozsireni a prislo mi fajn, aby clovek, co prijde k PHP a regularni vyrazy jiz odnekud jinud zna, se zde dozvedel, jak to tam s nimi je a jak je muze pouzivat.

    Ja osobne z PHP neumim ani radku, ale regularnich vyrazu obecne znam kupu implementaci, proto, az se budu chtit naucit PHP, se zde rada dozvim to male delta informaci, abych tam mohla pouzit to, co uz znam.

  • 6. 11. 2003 22:28

    Yeti (neregistrovaný)

    V PHP je pcre (jmenuje se preg). Pro člověka, který zná regulární výrazy z běžného perlu [sic], by stačila tato jediná věta.

  • 6. 11. 2003 23:35

    peta (neregistrovaný)

    snad jen toto:

    pokud o nekom napisete, ze nic neumi, zamyslete se nejdriv nad sebou.

    vas r.v.

    ^([A-Za-z0-9-_\.]+)@([A-Za-z0-9\.]+)\.([a-z]{2,7})$

    po opravene chybce

    ^([A-Za-z0-9\-_\.]+)@([A-Za-z0-9\.]+)\.([a-z]{2,7})$

    pusti treba i adresu

    .@..cz

    pokud si nejste jisty, exisuje jedna krasna stranka: http://www.regexp.cz/

    doporuciji obcas pouzit, o mozku nemluve

    p.g.

  • 7. 11. 2003 17:34

    Autor (neregistrovaný)

    no na regexp.cz hned na uvodni strance vidim tuhle masku pro email:
    ^[_a-zA-Z0-9\.\-]+@[_a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}$
    to mimo jine taky pusti adresu .@..cz :)
    takze o mozku opravdu nemluvme :)

  • 11. 11. 2003 11:02

    peta (neregistrovaný)

    Na stranku jsem odkazal proto, ze se tam da velmi rychle a jednoduse r.v. vyzkouset. Ne aby tam byly cerpany nesmysly...

    Stale tvrdim, ze je lepsi obcas pouzit mozek...