DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Regular expression i htaccess (http://www.devprotalk.com/forumdisplay.php?f=41)
-   -   Cimovanje sa regexpovima... (http://www.devprotalk.com/showthread.php?t=1856)

ivanhoe 19. 11. 2006. 15:07

ja radim spajdere koji skupljaju razne podatke sa web-a, i zato sam morao da savladam regExpe. Oni imaju vrlo specificnu upotrebu kod obrade stringova gde se traze odredjeni patterni, ali ne znas sve elemente patterna (pa ne moze direktno poredjenje karaktera da se koristi) i za takve probleme su apsolutno najednostavniji i najefikasniji pristup, a cesto ne bi ni moglo da se uradi, bez da pisem svoj parser.

Ako ti to ne treba onda te bas briga (ali obicno pre ili kasnije ti zatreba neka validacija nekog email ili CC polja..)

a zapravo nije regExp ni toliko komplikovan, ima 10-tak pravila i zahteva malo logicnog razmisljanja i to je sasvim dovoljno za osnovnu upotrebu. A vrlo je korisno znati ih, em mogu da ti ustede mnogo programerskog truda, em sto se u linux svetu koriste nasiroko, pa dosta alata (npr. grep, mod_rewrite) koristi istu tu sintaxu..

Petar Marić 19. 11. 2006. 18:31

Ovog semestra na faxu imamo predmet "Programski prevodioci".
Cilj predmeta je bolje razumevanja kako komercijalni kompajleri rade, a kao nusprodukt tog procesa izrađujemo sopstveni C kompajler (naravno "osakaćen").

RegExp-ovi nam puno pomažu (koristimo ih u skeneru), ali ih ne guramo svuda - u parseru se ipak koristi EBNF za prepoznavanje pojmova (zato što je baratanje specijalnim slučajevima na taj način lakše).

ivanhoe 19. 11. 2006. 19:50

Citat:

Originalno napisao Petar Marić
Ovog semestra na faxu imamo predmet "Programski prevodioci".
Cilj predmeta je bolje razumevanja kako komercijalni kompajleri rade, a kao nusprodukt tog procesa izrađujemo sopstveni C kompajler (naravno "osakaćen").

RegExp-ovi nam puno pomažu (koristimo ih u skeneru), ali ih ne guramo svuda - u parseru se ipak koristi EBNF za prepoznavanje pojmova (zato što je baratanje specijalnim slučajevima na taj način lakše).

koliko se ja secam teorije iz prevodilaca (davno sam polozio doduse) ne moze se svaki jezik prikazati preko EBNF, recimo secam se da je Pascal jedan od retkih koji moze u potpunosti...

TOP-DOWN parsere nije tesko pisati bez regExp-a, ali za BOTTOM-UP parsere (koji se uglavnom koriste u praxi) cete verovatno koristiti LEX i YACC (odnosno GNU verzije Flex i Bizon), a oni interno koriste sintaxu vrlo slicnu regExp-u za definisanje pravila...

Petar Marić 19. 11. 2006. 22:08

Citat:

Originalno napisao ivanhoe
TOP-DOWN parsere nije tesko pisati bez regExp-a, ali za BOTTOM-UP parsere (koji se uglavnom koriste u praxi) cete verovatno koristiti LEX i YACC (odnosno GNU verzije Flex i Bizon), a oni interno koriste sintaxu vrlo slicnu regExp-u za definisanje pravila...

Hehe, dobro se sećaš ;)

LEX odista koristi regexpove, dok YACC koristi EBNF.

ThunderMonkey 20. 11. 2006. 10:22

Evo jedne zanimljive aplikacije koja moze da vam olaksa zivot u pisanju istih (regexpova). Btw, zahteva .Net framework 1.1

http://www.radsoftware.com.au/regexdesigner/

dinke 20. 11. 2006. 12:54

Moj tutorijal na istu temu na tehnopolisu: http://www.b92.net/tehnopolis/intern...13461&start=10
(na kraju clanka postoje i neki korisni linkovi).

Inace, i ja poput ivanhoe imam takav posao da mi je znanje regexp-a neophodno, a ponekad sam prinudjen da pisem patterne koji su duzi od 3 reda. Recimo, pisanje scripta koji uzima listu cctdl domena sa nekog tamo sajta i sl stvari :)

Petar Marić 20. 11. 2006. 15:17

Off Topic:
Citat:

Originalno napisao dinke
Inace, i ja poput ivanhoe imam takav posao da mi je znanje regexp-a neophodno, a ponekad sam prinudjen da pisem patterne koji su duzi od 3 reda. Recimo, pisanje scripta koji uzima listu cctdl domena sa nekog tamo sajta i sl stvari :)

Screen scraping?


Vreme je GMT +2. Trenutno vreme je 18:47.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.