ďťż
 
problem z wyrazeniem regularnym ďťż
 
problem z wyrazeniem regularnym
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

problem z wyrazeniem regularnym



Tomasz Pichlinski - 20-01-2007 00:00
problem z wyrazeniem regularnym
  Witam!

Nie moge znalezc przyczyny nieprawidlowego dzialania ponizszego kodu,
dokumentacja PHP zawziecie milczy na ten temat. Przyznaje, ze kompletnie
nie znam sie na php (w ogole web development mnie nie pociaga), a musze
na zajecia napisac w nim pare skryptow. Kod, ktory sie dziwnie zachowuje:

if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
{
echo $this->email;
echo '</br>popraw e-mail</br>';
}

a to efekt wykonania:

Warning: ereg() [function.ereg]: REG_ERANGE in
E:\xampplite\htdocs\php_eclipse\test\formularz.php on line 73
piniu@interia.pl
popraw e-mail

Naprowadzi mnie ktos o co dokladnie chodzi?

Z gory dzieki i pozdrawiam
Tomasz 'Piniu' Pichlinski





Lemat - 20-01-2007 00:00

  Tomasz Pichlinski napisał(a):
> Witam!
>
> Nie moge znalezc przyczyny nieprawidlowego dzialania ponizszego
> kodu, dokumentacja PHP zawziecie milczy na ten temat. Przyznaje, ze
> kompletnie nie znam sie na php (w ogole web development mnie nie
> pociaga), a musze na zajecia napisac w nim pare skryptow. Kod, ktory sie
> dziwnie zachowuje:
>
> if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
> {
> echo $this->email;
> echo '</br>popraw e-mail</br>';
> }
>
> a to efekt wykonania:
>
> Warning: ereg() [function.ereg]: REG_ERANGE in
> E:\xampplite\htdocs\php_eclipse\test\formularz.php on line 73
> piniu@interia.pl
> popraw e-mail
>
> Naprowadzi mnie ktos o co dokladnie chodzi?

może o taki zakres znaków:
\-. od \ do .

ja bym na twoim miejscu jednak zajrzał na php.faq.pl tam jest lepsza
funkcja sprawdzająca poprawność emaili.

--
Pozdrawiam
Lemat
pomóż zwalczyć spam z ICIC:
http://www.lemat.priv.pl/index.php?m=page&pg_id=106
podlinkuj się do http://icic.pl




Viqq - 20-01-2007 00:01

  Tomasz Pichlinski wrote:
> if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
^^^
jak wstawiasz - (minus) to go nie escape'ujesz i umieszczasz go na końcu

[a-z0-9.-]




Vir - 20-01-2007 00:01

  Viqq napisał(a):
> Tomasz Pichlinski wrote:
>> if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
> ^^^
> jak wstawiasz - (minus) to go nie escape'ujesz i umieszczasz go na końcu

> [a-z0-9.-]
Za to jak dajesz kropke to juz slash :) A no i na poczatku tego exp`a
jest ^, ktory neguje - chyba nie bedzie dzialac. A problem, ktory
wysypuje caly okd jest nieslashowana kropka w ostatnim zestawie (jest
[a-z0-9\-.], powinnobyc [a-z0-9\-\.]).

--
V.





Tomasz =?iso-8859-2?q?=A6led=BC?= - 20-01-2007 00:01

  Dnia piątek, 19 stycznia 2007 14:40, Vir napisał:
> Viqq napisał(a):
> > Tomasz Pichlinski wrote:
> >> if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
> >
> > ^^^
> > jak wstawiasz - (minus) to go nie escape'ujesz i umieszczasz go na końcu
> >
> > [a-z0-9.-]
>
> Za to jak dajesz kropke to juz slash :) A no i na poczatku tego exp`a
> jest ^, ktory neguje - chyba nie bedzie dzialac. A problem, ktory
> wysypuje caly okd jest nieslashowana kropka w ostatnim zestawie (jest
> [a-z0-9\-.], powinnobyc [a-z0-9\-\.]).

^ oznacza poczatek ciagu znakow
--
Archiwum grupy: http://niusy.onet.pl/pl.comp.lang.php




Vir - 20-01-2007 00:01

  Tomasz Śledź napisał(a):
> Dnia piątek, 19 stycznia 2007 14:40, Vir napisał:
>> Viqq napisał(a):
>>> Tomasz Pichlinski wrote:
>>>> if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
>>> ^^^
>>> jak wstawiasz - (minus) to go nie escape'ujesz i umieszczasz go na końcu

>>> [a-z0-9.-]
>> Za to jak dajesz kropke to juz slash :) A no i na poczatku tego exp`a
>> jest ^, ktory neguje - chyba nie bedzie dzialac. A problem, ktory
>> wysypuje caly okd jest nieslashowana kropka w ostatnim zestawie (jest
>> [a-z0-9\-.], powinnobyc [a-z0-9\-\.]).

> ^ oznacza poczatek ciagu znakow
O faktycznie, to uzyty w [] robi za negator :) Moj blad.

--
V.




Viqq - 20-01-2007 00:01

  Vir wrote:
> Viqq napisał(a):
>
>> Tomasz Pichlinski wrote:
>>
>>> if ( !ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$', $this->email) )
>>
>> ^^^
>> jak wstawiasz - (minus) to go nie escape'ujesz i umieszczasz go na końcu
>
>
>> [a-z0-9.-]
>
> Za to jak dajesz kropke to juz slash :)

a właśnie nie :)
w [] kropka traci specjalne znaczenie

> A no i na poczatku tego exp`a
> jest ^, ktory neguje - chyba nie bedzie dzialac. A problem, ktory

to już ci wyjaśniono

> [a-z0-9\-.], powinnobyc [a-z0-9\-\.]).

nie, powinno być, jak napisałem wcześniej:

[a-z0-9.-]

(ewentualnie minus na początku [-a-z0-9.])

proponuję zapuścić sobie:

//echo '<pre>';
foreach (array('a','A','8','gG7','-','-a','b-','--7','E--','.','a.',
'.-','a.8','r-3.t','g.4-K','.^[','a*','2,3') as $t)
echo $t.': '.(ereg("^[a-z0-9.-]+$", $t) === FALSE ? '--' : 'OK')."\n";




Vir - 20-01-2007 00:01

  >> Za to jak dajesz kropke to juz slash :)

> a właśnie nie :)
> w [] kropka traci specjalne znaczenie

Niby tak, ale odpal sobie ten kod:

if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$',$email)){} // DZIALA
if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$',$email)){} // BLAD
(ORYGINALNY PRZYKLAD)

Druga linia wywali blad.

Przesuniecie, jakie proponujesz faktycznie bledu nie generuje:

if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[-a-z0-9.]+$',$email)){} // DZIALA
if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9.-]+$',$email)){} // DZIALA

http://www.greenend.org.uk/rjk/2002/...cketexpression
Kropka, podobnie jak dwukropek i znak rownosci, spelnia jakies tam
okreslone zadanie chociaz zwykle jest traktowana normalnie (tak jak ^
jest traktowany normalnie, chyba ze jest na poczatku). I co dziwne sama
kropka na koncu dziala, ale poprzedzona myslnikiem wywala tamten blad.
Nie wiem czemu, zbyt zmeczony jestem zeby szukac teraz :)

--
V.




Viqq - 20-01-2007 00:01

  Vir wrote:
> Niby tak, ale odpal sobie ten kod:
>
> if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-\.]+$',$email)){} // DZIALA
> if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9\-.]+$',$email)){} // BLAD
^^^
ale potrafisz czasem pomyśleć prawda?
no, to pomyśl, jakie znaczenie ma \-.
hint 1: php backslasha \ nie escape'uje, a ereg traktuje go jak normalny
znak w []
hint 2: a-z

> Przesuniecie, jakie proponujesz faktycznie bledu nie generuje:
>
> if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[-a-z0-9.]+$',$email)){} // DZIALA
> if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9.-]+$',$email)){} // DZIALA

a no fucktycznie! ;)

> http://www.greenend.org.uk/rjk/2002/...cketexpression

zajrzyj sobie lepiej do jakiegoś normalnego podręcznika, np.
http://www.tin.org/bin/man.cgi?section=7&topic=regex

> Kropka, podobnie jak dwukropek i znak rownosci, spelnia jakies tam
> okreslone zadanie chociaz zwykle jest traktowana normalnie (tak jak ^
> jest traktowany normalnie, chyba ze jest na poczatku).
ehh, regeksów to ty nie znasz

> Nie wiem czemu, zbyt zmeczony jestem zeby szukac teraz :)
łikend przed tobą, w sam raz na regeksy ;)




Viqq - 20-01-2007 00:01

  >> if (ereg('^[a-z0-9_]+@[a-z0-9\-]+\.[a-z0-9.-]+$',$email)){} // DZIALA
^^
a tak w ogóle to ten \ jest bez sensu, bo wówczas załapie się też taki
string:

janek@dom\enka.pl

a to już nie jest poprawny e-mail




Vir - 20-01-2007 00:01

  > ale potrafisz czasem pomyśleć prawda?
> no, to pomyśl, jakie znaczenie ma \-.
> hint 1: php backslasha \ nie escape'uje, a ereg traktuje go jak normalny
> znak w []
> hint 2: a-z
"a no fucktycznie! ;)" :)))))))) Kurde naprawde jestem chyba
przemeczony, sorki.

>> http://www.greenend.org.uk/rjk/2002/...cketexpression
> zajrzyj sobie lepiej do jakiegoś normalnego podręcznika, np.
> http://www.tin.org/bin/man.cgi?section=7&topic=regex
Niaf, nie trawie tych manopodobnych. XXI wiek, przez www prawie mozna
sterowac sondami kosmicznymi, a niektorzy nadal tworza nieczytelne helpy
pisane times`em.

> ehh, regeksów to ty nie znasz
Dopiero sie ucze, zawsze jakas nowa wiedza sie przyda wiec dzieki, za
zwrocenie uwagi na moje bledy :)

> łikend przed tobą, w sam raz na regeksy ;)
Tia, bede leczyc zapalenie pluc raczej :D

--
V.




Tomasz Pichlinski - 23-01-2007 00:00

  dzieki wszystkim za odpowiedzi.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    [MSSQL2000] Problem z =?ISO-8859-2?Q?tabel=B1/indeksem/zapytanie?==?ISO-8859-2?Q?m_czy_b=B3=B1d_w_bazie_danych=2E=2E=2E?= mysql i mysql-front, problem String line; if (line=="cos"){...}....problem Problemy z =?ISO-8859-2?Q?instalacj=B1_PostgreSQL_na_syste?==?ISO-8859-2?Q?mach_Windows?= [postgres] Problem z =?ISO-8859-2?Q?zmian=B1_struktury_i_z?==?ISO-8859-2?Q?ale=BFno=B6ciami=2E?= [oracle] =?ISO-8859-2?Q?zmia=BFd=BFony_przez_problem=3A_za?==?ISO-8859-2?Q?pytanie_do_hierarchi?= Problem z wartościami w MySQL :( [ MySQL and ASP and VBScript ] [PGSQL] czy ktos mial problemy z initdb pgsql 8.1 ? [MySQL] Problem z zapisem danych w bazie danych Problem z mysql - can't connect to MySQL/nietypowo...
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • tejsza.htw.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com