Hogyan épülnek fel a reguláris kifejezések?
udv..
nagyon orulnek ha valaki adna tenyleges informaciot, h hogyan mukodnek a "pattern"-ek
probaltam megfejteni peldaul ezt: preg_replace( '/(.*:\/\/)?([^ \/]*)([^ >"]*)/', '$3', $_SERVER['HTTP_REFERER']);
de nem sok sikerrel. amit szeretnek perpill megoldani, az az hogy
ha ($_SERVER['HTTP_REFERER']) == "http://asd.asd/" a felepitese akkor {tortenjenvalami}
de ha $_SERVER['HTTP_REFERER'] == "http://asd.asd/asd/" (tovabbi alkonyvtarak vannak) {akkor is tortenjen valamimas}
remelem eleg egyertelmu a peldam.. de a lenyeg a patter-kapcsolok megertese lenne, de lenyegeben fogalmam sincs h hogyan nevezik oket.. es php.net-en sem talaltam leirast..
koszi
■ nagyon orulnek ha valaki adna tenyleges informaciot, h hogyan mukodnek a "pattern"-ek
probaltam megfejteni peldaul ezt: preg_replace( '/(.*:\/\/)?([^ \/]*)([^ >"]*)/', '$3', $_SERVER['HTTP_REFERER']);
de nem sok sikerrel. amit szeretnek perpill megoldani, az az hogy
ha ($_SERVER['HTTP_REFERER']) == "http://asd.asd/" a felepitese akkor {tortenjenvalami}
de ha $_SERVER['HTTP_REFERER'] == "http://asd.asd/asd/" (tovabbi alkonyvtarak vannak) {akkor is tortenjen valamimas}
remelem eleg egyertelmu a peldam.. de a lenyeg a patter-kapcsolok megertese lenne, de lenyegeben fogalmam sincs h hogyan nevezik oket.. es php.net-en sem talaltam leirast..
koszi
Preg_replace
A preg_replace manualban olvassgass. Lényegében mindent leír a fv-ről. Ha a RegExp kifejezés működése érdekel, akkor találhatsz rengeteg anyagot a neten (pl: Pattern Syntax), főként angol nyelven és esetleg egy egyszerű magyar nyelvű e-book-ot is letölthetsz a tutorial.hu-ról is.
;-)
Még egy magyar leírás
http://vbence.web.elte.hu/regex_leiras.html
... bár ideje lenne frissítenem, lényegében helytálló infók vannak benne. :)
reguláris/szabályos kifejezés
A PATTERN kifejezés azt sugallja, hogy ezt a MINTÁT próbálja megtalálni/illeszteni, ez nem mond ellent annak, hogy a reguláris kifejezés generálja a szavakat. Annyi történik, hogy olvassa a szöveg karakterét(konstans) és közben a reguláris kifejezésnek megfelelően próbálja generálni az adott karaktert, ha ez nem sikeres, akkor az olvasott karakter(lánc) nem lehet a nyelv szava. Ha a megelőző karakterek még nyelvbeli szót generálhattak, akkor ezt elfogadjuk. Ha nem akkor egyszerűen olvasunk és generálunk tovább. Ez általában mohón történik, vagyis addig generálja a karaktereket a reguláris kifejezésed, amíg csak tudja. A lusta elv az pedig az, hogy egyből ELFOGADJA azt a SZÓT ami nyelvbeli (generálható).
A reguláris kifejezéseknek megfelelő automata osztály is létezik, ezek az állapotgépek, ha azokat esetleg ismered, segíthet az elképzelésében.
Gyakori hiba a reguláris kifejezés építése során, hogy az operátorokat/műveleteket nem különbözteti meg a készítő a konstansoktól. Ez abból fakad, hogy az operátor valójában egy jel a billentyűzeten, tehát másra is használhatjuk, mint konstans. Ekkor valahogy jelezni kell, hogy ez most nem operátor, hanem konstans (rendszerint \ jelet kell tenni az adott karakter elé).
Wikipedia szabályos kifejezés / regular expression
Szép, akadémikus
nyihi
a másik, hogy az állapotgép fogalma éppenséggel inkább tartozik a programozóra, mint a matematikusra. az hogy kereső automata nem tudom mit jelent amúgy, az már web2 lehet, nemértem.
azt hittem érthető lesz, de túlkomplikáltam. hihi. mondjuk aki nem tudja elolvasni a magyar nyelven elérhető manualt annak úgyismindegy mit ír az ember.
a logikája
ouch....
regexp