Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

PHP i regex

[es] :: Skript jezici :: PHP i regex

[ Pregleda: 3912 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

lenny
Lendak Imre
saradnik, FTN, Novi Sad
NS

Član broj: 3147
Poruke: 68
217.26.72.*

ICQ: 158238713


Profil

icon PHP i regex13.11.2002. u 15:39 - pre 260 meseci
Treba proveriti ispravnost korisnickog imena u PHP-u. Za ovo koristim sledeci regular expression:

^[A-z0-9_]*$

Znaci dopustam alfanumericke znake i underscore. Pitanje je sledece: kako dopustiti i tacku u imenu?
Negde sam procitao da specijalne karaktere ne treba escape-ovati, ako su prvi u nizu. Ali ako ubacim tacku kao prvi element niza (ispred A):

^[.A-z0-9_]*$

on ce propustiti sve. A ako ubacim jos jedan backslash, onda ce raditi, propustace tacke, ali i backslash-eve:

^[\.A-z0-9_]*$

Kako da se resi ovaj problemcic?
No signature...
 
Odgovor na temu

Gojko Vujovic
Amsterdam, NL

Administrator
Član broj: 1
Poruke: 13651



+165 Profil

icon Re: PHP i regex14.11.2002. u 03:22 - pre 260 meseci
Eregi ili pcre?
 
Odgovor na temu

lenny
Lendak Imre
saradnik, FTN, Novi Sad
NS

Član broj: 3147
Poruke: 68
217.26.72.*

ICQ: 158238713


Profil

icon Re: PHP i regex14.11.2002. u 14:34 - pre 260 meseci
Obicna ereg() funkcija u PHP-u.
No signature...
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.verat.net



+257 Profil

icon Re: PHP i regex14.11.2002. u 15:51 - pre 260 meseci
Hm...
http://docs.kde.org/3.0/kdeutils/KRegExpEditor/whatIsARegExp.html kaze:
Citat:

Example 2.1. Searching for normal text.

If you just want to search for a given text, then regular expression is definitely not a good choice. The reason for this is that regular expressions assign special meaning to some characters. This includes the following characters: .*|$. Thus if you want to search for the text kde. (i.e. the characters kde followed by a period), then you would need to specify this as kde\.[1] Writing \. rather than just . is called escaping.

Dakle, trebalo bi da ti to radi, ne znam zasto ti propusta i backslash...?
Opet, mogao bi da probas i
^[\.\w]*$
(\w any "word" character, equivalent to [A-Za-z0-9_] )

Probaj pa javi, ja sad nemam vremena...
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

lenny
Lendak Imre
saradnik, FTN, Novi Sad
NS

Član broj: 3147
Poruke: 68
217.26.72.*

ICQ: 158238713


Profil

icon Re: PHP i regex14.11.2002. u 20:20 - pre 260 meseci
[\.\w] mi nije pomoglo. Problem ostaje isti: radi (i) to sto treba, ali propusta i slash.
No signature...
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
62.108.114.*

Sajt: localhost


+5 Profil

icon Re: PHP i regex15.11.2002. u 00:51 - pre 260 meseci
batali posix regex...

evo ti sa pcre:
Code:

echo preg_match("!^[\.\w]+$!", $username)


btw, primeti da sam stavio + umesto *, da bi morao da unese bar jedan karakter. ako oces da imash recimo 5-20 karaktera, stavi {5,20} umesto +
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.matf.bg.ac.yu

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: PHP i regex19.11.2002. u 19:27 - pre 260 meseci
Ne možeš koristiti ,,A-z'', već probaj sa "^[.A-Za-z0-9_]+$". Ako ovo ne radi (a tačka ne mora biti na prvom mestu, crtica bi npr. morala zbog nizova 0-9, a-d i slično), onda ti ne valja regex biblioteka!!!

S obzirom na to da je ovo vrlo malo verovatno, dodaću još samo da niz u skupu znakova označava niz vrednosti -- regex biblioteka nema nikakvo saznanje o tome jesu li to slova ili ne. Prema tome "A-z" će uključiti i mnoge simbole koje najverovatnije nisi hteo, a možda je među njima i kosa crta. Tu si na samom početku i grešio.

U svetlu prethodnih napomena, dodaću i da možeš koristiti "^[.\w]+$" za isti rezultat.

Toliko
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Jbyn4e

Član broj: 422
Poruke: 6049
*.verat.net



+257 Profil

icon Re: PHP i regex20.11.2002. u 15:58 - pre 260 meseci
^[.\w]+$ - koliko je meni poznato:
. zamenjuje "any single character except a newline character", dakle, ovde ce mu proci i |, i \ i [ i ] i ...
\.\w znaci - . i niz karaktera koji moze da se sastoji od A-Za-z0-9_

a posto mu ni to ne radi - moguce da ima losu bibl. regexpa ili je nesto drugo u pitanju sto sad ne mozemo da pronadjemo sta.
Kad sve ostalo zakaže, pročitaj uputstvo...
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.dial.InfoSky.Net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: PHP i regex20.11.2002. u 22:55 - pre 260 meseci
To nije slučaj za POSIX regex; pogledaj, na primer (ovo će biti zvanično POSIX 2002 najverovatnije početkom decembra -- ali ovo je sve prebačeno gotovo istovetno iz starog POSIX-a; besplatna registracija može biti neophodna za čitanje), http://www.opengroup.org/onlin...s/xbd_chap09.html#tag_09_03_05 :
Citat:

The special characters '.' , '*' , '[' , and '\' (period, asterisk, left-bracket, and backslash, respectively) shall lose their special meaning within a bracket expression.


Izričito se navodi da nije potreban naročiti tretman za ,,.'', ,,\'' i druge simbole koji se ne koriste pri navođenju samog ,,bracket expression'' (uglaste zagrade, crtica itd.)

Prema tome, POSIX regex će time uključiti i (obrnutu) kosu crtu. Međutim, moguće je da ovo radi u Perl regex-u zato što se ,,backslash-nešto'' interpretira kao ,,nešto'' ukoliko mu nije unapred dodeljeno značenje.

Toliko

PS. Ja sam zaista isprobao dati primer na ispravnoj POSIX regex biblioteci, i on radi kako se očekuje (tj. kako *ja* očekujem, čitajući POSIX definiciju
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
62.108.114.*

Sajt: localhost


+5 Profil

icon Re: PHP i regex22.11.2002. u 00:48 - pre 260 meseci
zato mirzim posix! (radi kao sto pise u dokumentaciji, a ne onako kako ocekujem )
 
Odgovor na temu

McKracken
Vladimir Jovanovic
HuxleyDev

Član broj: 465
Poruke: 2941
*.ptt.yu

ICQ: 203079925


+7 Profil

icon Re: PHP i regex22.11.2002. u 12:08 - pre 260 meseci

Pogledajt regex2txt na soureforgetu.

Jako fina skripta koja olaksava rad sa regexima i umanjuje glavobolje bolje od kafetina ...
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: PHP i regex22.11.2002. u 23:53 - pre 260 meseci
nikada se necu odreci moje kafe!!! ;)

btw, nisam rekao da imam problema sa regex-ima. samo sa posix. u stvari, nemam ni sa posix, jer ih uopste ne koristim.. ;)
 
Odgovor na temu

[es] :: Skript jezici :: PHP i regex

[ Pregleda: 3912 | Odgovora: 11 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.