21:00 | Temat wykładu: | |
Wyrażenia Regularne - Wprowadzenie do wyrażen regularnych. Przykłady zastosowan w perlu i egrep'ie (by Karql, 09.04.2006) @ wyklady.net | ||
Karql | Dobra zaczynamy | |
Karql | Witam wszystkich na wykladzie pod tytulem: "Wprowadzenie do wyrazen regularnych. Przyklady zastosowan w egrp'ie i perlu" | |
Karql | Na poczatek kilka ogloszen parafialnych: | |
21:01 | Karql | Ludzi z opami i halfopami prosze o uszanownie trybu +m |
Karql | Bedzie czas na pytania | |
Karql | Prosze nie pisac nickami | |
Karql | Ignoring JOINS PARTS QUITS NICKS from #wyklady | |
Karql | mam wlaczone ignorowanie to i tak nie bede tego widzial | |
Karql | Po kazdym tlumaczeniu bedzie czas na pytania. Wiec wszystko bedzie sie mozna dowiedziec co i jak. | |
Karql | Jesli jednak jest jakas wazna sprawa prosze pisac na priv. | |
21:02 | Karql | Koniec ogloszen. |
Karql | Jestem Karql jak widac i dzisiaj postaram sie wam przedstawic temat wyrazen regularnych. Postaralem sie przygotowac do niego jak najlepiej, ale sam nie jestem nie wiadomo kim wiec nie zlinczujcie mnie jak czegos nie bede wiedzial:) Wtedy poprostu poprosze o email i odpowiedzi postaram sie udzielic pozniej. | |
21:03 | Karql | Dobra najlpierw co to sa wyrazenia regularne: |
Karql | Z angielskiego Regular Expression czesto wystepuja pod nazwa regex lub regexp | |
21:04 | Karql | Sa dwa silniki wyrazen regularnych DFA unikoswe i NFA o ktorych bedzie dzisiaj mowa. |
Karql | Wyrazenia NFA sa o wiele bardziej rozbudowane i sa zaimplementowane w takich jezykach, jak perl, ruby, python egrep etc | |
21:05 | Karql | Wyrazenia regularne sa bardzo skutecznym mechanizmem przetwarzania wszelakich tekstow i innych danych. Pozwalaja uproscic przegladanie poczty, dokumentow tekstowych itp. |
Karql | Odgrywaja wazna role w programowaniu w perlu, pisaniu skryptow cgi etc | |
Karql | Gdzie np trzeba zwalidowac formularze itp. Zastosowan jest multum | |
21:06 | Karql | Ja przedstawie jeden z zycia |
Karql | Np razm mialem taka sytuacje ze znajomy przez przypadek wlaczyl na forum autoczyszczenie | |
Karql | I wszystkei tematy z jednego dzialu poszly sie pasc | |
Karql | Kopie mial stara wiec nie dalo sie usunac i wgrac od nowa | |
21:07 | Karql | Jeszcze lepsze bylo to ze byly tabele posts i posts_text |
Karql | w posts byly numer id tematu a w posts_text nie | |
Karql | i tutaj z pomoca przyszly wyrazenia regularne ktore dalo sie napisac w kilka minut | |
Karql | a jakby trzeba bylo recznie przeszukac 30 tysiecy linijek to zajelo by troche | |
Karql | dobra chwile odpoczynku | |
Karql | :) | |
21:08 | nooga | hm |
java | lol | |
Karql | cos jest nie jasnego | |
java | :) | |
Karql | ? | |
beomboi | qrfa jak spamuja | |
beomboi | ;p | |
java | wszytsko jasne | |
Karql | lux to jedziemy dalej | |
java | nop | |
smutny | Karql, bardzo trudna mowa | |
java | zdazylem | |
Karql | Sory ze to takie przynudzanie jest ale wstepu nie da sie inaczej zalatwic:) | |
21:09 | Karql | Dobra wyrazenia regularne sa jak jezyk obcy na poczatku mozemy nic nie rozumiec, a z czasem tak jak jezyk obcy beda dla nas jasne a nie beda nie zrozumialym belkotem. Wyrazenia skladaja sie z malutkich cegielek z ktorych mozemy budowac ogromne mury |
Karql | Dobra przejdziemy do konkretow | |
21:10 | Karql | Pierwsze jeszcze podam narzedzia dla windowsowcow |
Karql | Mysle ze najlepiej uzyc cygwina http://www.cygwin.com/ tam jest i perl i egrep | |
Karql | http://www.activestate.com/Products/Download/Download.plex?id=ActivePerl Interpereter perla | |
Karql | http://unxutils.sourceforge.net/ tutaj jeszcze cos takiego znalazlem nie wiem nie teestowalem:) | |
21:11 | Karql | Wyniki programow etc bede wklejal dla tych co nie maja |
Karql | Dobra lecimy | |
Karql | Sciagnijcie te przykladowe logi: http://wyklady.vexillium.org/karql/ex_log.txt | |
Karql | W wyrazeniach regularnych mamy meta znaczniki i zwykly tekst | |
Karql | o co chodzi zaraz wytlumacze | |
Karql | egrep '<[ @%+]Karql>' ex_log.txt | |
Karql | odpalmy takie polecenie | |
21:12 | Karql | egrep jest to program ktory przetwarza podany plik wiersz po wierszu i zwraca wiersze ktore pasuja do wzorca |
Karql | uruchamiamy go w ten sposbo | |
Karql | egrep 'wrzorzec' plik | |
Karql | wynikiem tego polecenia bedzie mneij wiecej cos takiego | |
21:13 | Karql | 20:57 <@Karql> tutaj mam opa |
Karql | 20:58 <@Karql> :) | |
Karql | 20:59 < Karql> tutaj nie mam opa | |
Karql | 20:59 < Karql> tu jest druga wypowiedz o godzinie 20:59 | |
Karql | zwroci nam te linijki z pliku ex_log.txt | |
Karql | dobra teraz jeszcze jeden przyklad uzycia chcemy wypowiedzi o godzinie 20:59 | |
Karql | zrobimy za tem | |
21:13 | Karql | egrep '^20:59 <[ @%+]Karql>' ex_log.txt |
21:13 | Karql | narazie tutaj nie wszystko jest jasne ale po wykladach bedzie to jasne jak sloneczko |
21:14 | Karql | w tym wyrazeniu |
Karql | ^ [ ] to sa meta znaki | |
Karql | reszta to jest zwykly tekst | |
Karql | ich znaczenie wyjasnie pozniej | |
Karql | moze pytanka | |
java | nie | |
defc0n | nie ;p | |
java | fastly | |
java | :) | |
conel | wszystko jasne... dawaj dalej | |
Morroth | czyli najprosciej egrepem rozgryzac?? | |
21:15 | pawlik | macie gdzieś loga? |
hawk | ;] | |
Karql | pawlik: log bedzie na stronei | |
Karql | jak skoncze wyklad | |
defc0n | pawlik: bedzie po | |
pawlik | :] | |
Karql | dobra lecimy dalej zaczna sie meta znaki to juz nudno nie bedzie | |
defc0n | ;] | |
Morroth | no to lecimy | |
chochlik | Karql: narazie dałeś pare przykładów, a gdzie tłumaczenia, no ale dobra chyba nie ma tu na tyle początkujących co by nie wiedzieli o co narazie chodzi | |
21:16 | Karql | spox jak cos to pisz na priv jak jest +m |
Karql | dobra wszystkie wyrazenia ktore bede tutaj dawal dam miedzy dwa slashe | |
21:16 | Karql | /wyrazenie/ |
21:16 | Karql | teraz bardzo wazna rzecza jest zebysmy nauczyli sie myslec jak wyrazenia regularne |
Karql | czyli wyrazenie /kot/ | |
Karql | nie pasuje | |
Karql | do ciagu w ktorym wystepuje wyraz kot | |
21:17 | Karql | tylko PASUJE do ciagu w ktorym wystepuja kolejno litery k o t |
Karql | poniewaz wyrazenia nie znaja pojecia slow etc | |
Karql | chodzi tutaj ze jakbyscie mysleli tak jak podalem ze nie mozna | |
Karql | to by byly np takie akcje ze macie wyrazenie /kot/ | |
Karql | ktory pasuje np do maskotka bo ona zawiera w sobie trzy litery jedna po drugiej k o t | |
21:18 | Karql | teraz wezmy pierwszy przyklad z egrepa |
21:18 | Karql | /<[ @%+]Karql>/ |
21:18 | Karql | pasuje jesli w ciagu wystepuje |
21:19 | Karql | < pozniej (albo spacja albo @ albo % albo +) pozniej kolejno litery K a r q l i znak > |
Karql | czyli pasuja jesli w ciagu znajdzie sie | |
Karql | < Karql> albo <@Karql> albo <%Karql> albo <+Karql> | |
Karql | jest tak bo moge miec albo voice albo opa albo etc | |
Karql | :) | |
21:20 | Karql | dlaczego nie dalem wzorca samego Karql? |
Karql | poniewaz | |
Karql | jak pisalem pasowaly by do niego wszystkie wiersze w ktorym wystepuja litery K a r q l po sobie | |
Karql | czyli by pasowalo przywitanie nextora | |
Karql | a my chcielismy tylko wersy mojego autorstwa | |
21:21 | Karql | no poczatek za soba |
Karql | cos jest nie jasne w tym co powiedzialem? | |
smutny | dalej, dalej :] | |
conel | lec dalej | |
Morroth | more | |
moghar | Karql, jedno pytanie | |
Mass | go go | |
java | fastly | |
Karql | powiem jeszcze dlaczego w drugim przykladzie jest ^ | |
java | :) | |
Karql | poniewaz chcemy tylko | |
Karql | wyrazenia moje | |
nooga | cat plik | grep 'pattern' | |
moghar | a jesli chcielibysmy szukac takiego ciagu: [a] ? | |
b3x | java, najpierw angielskiego się poucz. | |
nooga | jakby ktos nie mail egrepa | |
Karql | a anonim mnie cytowal | |
Karql | wiec jego tez by wypisalo | |
Karql | ale to zaraz bedzie jasno | |
Karql | nooga: tak tez moze byc | |
Karql | to jest przekazywanie strumieni | |
21:22 | Karql | z stdout jednego polecenia na stdin drugiego czyli jest to rownowazne |
Karql | :) | |
Karql | dobra teraz polecimy z meta znakami | |
java | b3x: :) | |
moghar | Karql, ? | |
Karql | myslalem ze to wolniej pojdzie | |
mulander | Karql: nie kradnij roboty DJ_cool_owi :P | |
Karql | spox | |
Karql | tylko przypomnialem:) | |
DJ_cool_ | ;d | |
Karql | dobra przechodzimy do meta znakow | |
21:23 | Karql | Zaczniemy od /^/ i /$/ |
Karql | czyli od poczatku i konca wiersza | |
Karql | napomnialem juz ze w drugim przykladzie egrepa byl uzyty meta znak ^ | |
Karql | jesli by go niebylo | |
Karql | to wyswietlilo by cytowanie mnie:) | |
21:24 | Karql | te znaki nazywaja sie kotwiczki z angielskiego anchors |
Karql | dobra | |
Karql | ^ oznacza poczatek wierszu | |
Karql | $ koniec | |
Karql | mamy wyrazenie | |
21:24 | Karql | /^kot$/ |
21:24 | Karql | czyli pasuje do ciegu w ktorym najpierw wystepuje poczatek wiersza pozniej kolejno litery k o t i pozniej zaraz koniec wiersza |
21:25 | Karql | pytania |
Karql | ? | |
conel | dalej prosze | |
smutny | none | |
moghar | Karql | |
damianmyst | dalej ;) | |
chochlik | hmmm | |
chochlik | karql | |
chochlik | pytanie | |
moghar | nie odpowiedziales na moje poprzednie | |
Karql | moghar: ktore? | |
Karql | chochlik: jakie | |
Karql | ? | |
chochlik | cyzli /^kot$/ by nie pasowało np. do "kot blebel" | |
chochlik | ? | |
Karql | nie | |
nooga | nie | |
nooga | :D | |
conel | nie | |
Karql | napisalem | |
chochlik | oke | |
illusion | java: polecam bardziej egrep [; | |
moghar | jak by napisac, jesli szukalibysmy wyrazenia [a] ? | |
chochlik | dalej | |
21:26 | smutny | dalej! |
Karql | ze " czyli pasuje do ciegu w ktorym najpierw wystepuje poczatek wiersza pozniej kolejno litery k o t i pozniej zaraz koniec | |
Karql | wiersza" | |
nooga | pasowalo by do linii zawierajacej dokladnie "kot" | |
nooga | bez " | |
java | illusion: ? | |
Karql | dobra czyli ten meta znak juz jasny | |
Karql | ? | |
illusion | od grepa | |
smutny | niom | |
Morroth | tak | |
Karql | lux idziemy dalej | |
21:27 | Karql | Teraz zajmiemy sie klasa znakow |
Karql | czyli [...] | |
Karql | za te ... dajemy znaki jakie moga wystapic | |
Karql | dopasowuje to w jednym miejscu | |
Karql | tak jak bylo w przykladzie z [ @%+] | |
Karql | czyli w tym miejscu gdzie jest klasa moze wystapic znak w niej podany | |
21:28 | Karql | przyklad: |
Karql | chcemy wyszukac w tekscie | |
Karql | wiersze w ktorym wystepuje Kowalski i pani Kowalska moga oni z braku szacunku byc pisani z malej litery | |
Karql | czyli zrobimy wyrazenie /[Kk]owalsk[ai]/ | |
21:29 | Karql | to wyrazenie pasuej jesli w ciagu jest litera K lub k po niej wystepuja kolejno o w a l s k i a pozniej lietera a lub i |
Karql | w klasie znakow mozemy uzywac - ktory jest meta znakow w klasie normlanie wystepuje jako zwykly tekst | |
Karql | - jest to zakres | |
Karql | np nie musimy wypisywac [abcdefgh] tylko zrobic [a-h] tak samo z liczbami [0-9] | |
21:30 | Karql | jesli chcemy w klasie uzyc myslnika musimy go dac na poczatku |
Karql | dobra | |
nooga | mozna dac flage i po / to zignoruje case chyba | |
Karql | pytania z tego mataznaku | |
Karql | nooga: tak | |
java | nie | |
Karql | ale tu chodzi o przyklad | |
damianmyst | ja mam | |
nooga | acha | |
java | dalej | |
Karql | o tym pozniej powiem | |
Morroth | apetyt rosnie w miare jedzenia - dawaj | |
Karql | :) | |
mulander | nooga: / to nie jest znak ucieczki. | |
21:31 | Karql | o innym sposobie ignorowania |
conel | nooga: mozna ale teraz bylo o [ ] a nie o opcjach | |
b3x | Karql, proponuje branie wiecej materialu miedzy przerwami i wyjscie poza pierwsze zagadnienie, co jest 10% podstaw... | |
Karql | znakow | |
mulander | jak juz to \ | |
Karql | damianmyst: pisz | |
Karql | b3x: tu sa tez poczatkujacy | |
damianmyst | juz nie mam ;p | |
mulander | a sorx nie zawuwazylem ze ty o insensitive piszesz | |
mulander | my bad; ) | |
Karql | to musze dokladnie zeby sie nie pogubili:) | |
LySy | :> | |
mulander | ale w tym przykladzie co karql dal | |
java | :) | |
conel | dobra lec dalej | |
damianmyst | chcialem spytac o to ignorowanie...ale juz spytali ;) | |
LySy | dajesz rade, mow dalej ;_) | |
L0R | Karql: poczatkujacy poczatkujacymi, ale to nie sa trudne zagadnienia i kazdy ogarnia | |
mulander | /i bylo by niezbyt dobrym pomyslem | |
L0R | rob wiecej na raz ;] | |
LySy | !+m | |
mulander | bo pasowalo by rowniez KOWALSKI itd | |
smutny | +m! | |
21:32 | Karql | L0R: ale chce miec jakas komunikacje z wami |
Karql | zebym widzial ze nie spicie | |
Karql | :) | |
Karql | spox lecimy dalej | |
mulander | Karql: usypianie | |
java | haha | |
nooga | mulander: /.../i | |
mulander | to moja specjalnosc | |
mulander | ;P | |
Karql | dobra | |
mulander | nooga: wiem sorx, doczytalem po fakcie ;) | |
Karql | teraz wspomne o negacji klasy znakow:) | |
Karql | czyli o [^...] | |
Karql | np [^abc] | |
Karql | wszystko oprocz abc | |
Karql | a lub b lub c | |
Karql | to jest chyba jasne | |
21:33 | Karql | czasami lepiej jest tego uzyc |
Karql | :) | |
Karql | widzimy ze jest tutaj ^ meta znak pozcatku wiersza | |
Karql | ale w klasie znakow zmienia on swoje znaczenie i neguje klase znakow | |
Karql | ale tylko jesli jest na poczatku | |
Karql | nie moze byc [abc^def] | |
Karql | bo wtedy bylby traktowany jako zwykly znak | |
21:34 | Karql | przyklad uzycia tego moze byc np |
Karql | chcemy aby jakis ciag nie mogl zaczynac sie od cyfry | |
Karql | zrobimy wiec: | |
21:34 | Karql | /^[^0-9]/ |
21:34 | Karql | :) fajne co:) |
Karql | Dobra kolejnym meta znakiem bedzie . (kropka) | |
Karql | czyli dowolny znak | |
21:35 | Karql | np /ka./ |
Karql | pasuje jesli w ciagu wystepuja kolejno kac kat kab etc | |
Karql | kazdy znak | |
Karql | w miejsce kropki moze byc | |
Karql | mozemy to wykorzystac np gdy chcemy znalezc dzisiejsza date | |
Karql | ktora moze byc w 3 postaciach | |
Karql | 9.4.2006 9-4-2006 9/4/2006 | |
21:36 | Karql | mozemy napisac to na kalsie znakow |
21:36 | Karql | /9[-./]4[-./]2006/ |
21:36 | Karql | ale z kropka jest krocej i czytelniej |
21:36 | Karql | /9.4.2006/ |
21:36 | Karql | pamietajmy jednak ze kropka dopasowywuje kazdy znak |
Karql | wiec moze byc 9a4b2006 | |
21:37 | Karql | lub 91422006 |
Karql | wiec musimy sie zastanowci | |
Karql | zastanowic* | |
Karql | wiec czy powinno sie uzywac kropki? | |
Karql | pierwsze musimy znac | |
Karql | dobrze tekst ktory przerabiamy | |
Karql | czasami lepiej jest uzyc dla bezpieczenstwa klasy znakow zeby nic nie porzadanego sie nam nie przedostalo | |
Karql | pytaneczka | |
Karql | :) | |
21:38 | Morroth | teraz juz wszystko jasne |
conel | brak... lec | |
java | :) | |
Karql | heh fajno | |
Karql | :) | |
Morroth | jedziesz dalej | |
Karql | dobra teraz przejdziemy do alternacji | | |
Karql | czyli dopasowanie jednego z wielu pod wyrazen | |
Karql | wczesniejszy przyklad /[Kk]ot/ | |
Karql | mozemy zapisac jako | |
21:39 | Karql | /Kot|kot/ |
21:39 | Karql | a nawet /(K|k)ot/ |
Karql | wiec po co tego uzywac | |
Karql | klasa dopasowywuje DOKLADNIE jeden znak | |
Karql | znak | moze dopasowac kolejne wyrazenia wyrazy etc | |
Karql | teraz np | |
21:40 | Karql | chcemy zrobic podobny przyklad jak z kowalskimi |
Karql | tylko jeszcze bedzie oprocz kowalaksi panstwo maslowscy tez Maslowski maslowski Maslowska maslowska | |
Karql | znakiem | mozemy to zapisac tak | |
21:40 | Karql | /Kowalska|kowalska|Kowalski|kowalski|Maslowski|maslowski|Maslowska|maslowska/ |
21:40 | Karql | ale troche dlugo |
21:41 | Karql | jak pisalem mozna to laczyc miedzy soba |
Karql | wiec polaczymy | |
21:41 | Karql | /[Kk]owalsk[ai]|[Mm]aslowsk[ia]/ |
21:41 | Karql | mozna jeszcze prosciej ale o tym pozniej przy omawianiu meta znaku ? |
Karql | uzylem wczesniej nawiasow dokladne ich dizalanie omowie pozniej narazie nam beda sluzyc do grupowania tekstu | |
21:42 | Karql | jakies pytania z tego |
Karql | ? | |
conel | tez nie | |
nooga | nawiasy sie nazywa cons? | |
Morroth | juz chcialem spytac o te nawiasy | |
Morroth | ale poczekam | |
Karql | nooga: wiesz ze nie wiem:) | |
Karql | nie znam angielskich nazw metaznakow | |
FreeS | ok :) | |
nooga | pisalem keidys engine regexpowy wwg. jakiegos dziwnego tutsa | |
FreeS | to lecimy dalej +m | |
Karql | ale jak bedziesz chcial to moge ci poszukac | |
nooga | i tam bylo | |
21:43 | Karql | dobra widze ze to tez jest jasne:) |
nooga | oki, thx | |
mulander | nooga: | |
mulander | karql zdejmij | |
mulander | na sekundke | |
mulander | nooga: te nawiasy potocznie nazywa sie grouping parantheses | |
Karql | mulander: thx:) | |
mulander | i tycza one nawiasow grupujacych jezeli masz na mysli nawiasy ( ) | |
Karql | jak zawsze pomocny | |
Karql | dobra moge dalej | |
Karql | ? | |
mulander | jezeli mowisz o [ ] to potocznie klasy. | |
mulander | tak | |
nooga | hm | |
21:44 | Karql | teraz przejdziemy do granicy slow |
Karql | w pierwszym przykladzie z /kot/ | |
Karql | bylo ze moze on pasowac np do maskotka | |
Karql | mowilem juz ze wyrazenia nie znaja slow | |
Karql | ale my mamy czesto taka potrzebe zeby znalezc tylko okreslone wyraze | |
Karql | wyrazy* | |
Karql | do tego przychodzi nam granica slowa | |
Karql | \< i \< w perlu jest to inaczej | |
Karql | ale roznice miedzy perlem itp podam na koncu | |
21:45 | Karql | http://wyklady.vexillium.org/karql/ex_text.txt |
Karql | sciagnijcie to | |
Karql | jesli bysmy zrobili | |
21:45 | Karql | egrep 'kot' ex_text.txt |
21:45 | Karql | to wypisze nam |
Karql | julka ma maskotke | |
Karql | a kot zjadl ale:) | |
Karql | a my chcemy tylko ten co kot zjadl ale | |
Karql | wiec zastosujemy granice slow i wyrazenie bedzie wygladalo tak | |
21:46 | Karql | egrep '\<kot\>' ex_text.txt |
21:46 | Karql | z tego pytan nie robie bo to oczywiste |
Karql | dobra | |
Karql | teraz przejdziemy | |
Karql | do elementow opcjonalnych | |
Karql | czyli ? | |
21:47 | Karql | najprosciej na przykladach |
21:47 | Karql | /kota?/ |
21:47 | Karql | pasuje jesli w ciagu wystepuja litery k o t po ktorych moze ale nie musi wystapic litera a |
Karql | znak ? zawsze odnosi sie do jednego elementu po lewej stornie | |
Karql | czyli tutaj do t juz sie nie odnosi | |
21:48 | Karql | dobra wezmy teraz jakies porzyteczniejsze jego wykorzystanie |
Karql | mamy za zadanie wypisac wiersze w ktorych wystepuja kowal kowalski owalny | |
Karql | mozemy to zrobic znakiem | | |
Karql | /kowal|kowalski|owalny/ | |
Karql | ale to takie nie fachowe i dlugie | |
Karql | przyjzyjmy sie tym wyraza | |
21:49 | Karql | - na poczatku wystepuje litera k ale nie musi byc |
Karql | - poznije czlon wszystkich owal | |
Karql | - a pozniej koncowka albo ski albo ny | |
Karql | wiec zrobimy takie wyrazenie | |
21:49 | Karql | /k?owal(ski|ny)?/ |
21:49 | Karql | jasne wszystko |
java | tak | |
defc0n | tak :) | |
smutny | tak | |
21:50 | Dyzio | Tak. |
conel | tak | |
Morroth | tam mialo byc < i > | |
ZoZol | tak ;] | |
Karql | e to za dobrze mi to idzie | |
Karql | jak nie ma pytan | |
Karql | :) | |
java | ehh | |
Karql | to lecimy | |
Karql | szkoda czasu | |
java | pojetna widwonia | |
Morroth | jazda | |
Karql | no pojeta widownia tez | |
Karql | :) | |
Karql | o teraz cos fajniejszego | |
Karql | bez czego wyrazenia nie mialy by sensu | |
Karql | mianowicie powtorzenia * i + | |
21:51 | Karql | * zero lub wiecej powtarzajacych sie elementow |
Karql | + jeden lub wiecej powrarzajacych sie elementow | |
Karql | mamy np | |
Karql | wyszukac naglowki na stonie html | |
Karql | jak wiadomo naglowki to | |
Karql | <Hliczba> | |
Karql | moga byc spacje miedzy nimi | |
Karql | np <H1> <H 2> | |
21:52 | Karql | nie bedziemy wiec robic |
Karql | <H ? ? ? ? ? ? ?1> | |
Karql | bo to by bylo bez sensu tutaj uzyjemy powtorzen | |
Karql | zeby bylo elastyczne do wyrazenia uzyjemy * i klase znakow | |
21:52 | Karql | /<H *[1-6]>/ |
21:52 | Karql | czyli pasuje jesli w wierszu |
21:53 | Karql | wystepuje < pozniej litera H pozniej dowolna liczba spacji moze byc zero pozniej cyfra 1 lub 2 lub 3 etc i > |
Karql | teraz wykrozystanie + | |
Karql | wezmy tez jakis tag html | |
Karql | hmm np <FONT SIZE=12> | |
Karql | tutaj tak samo moga byc odstepy | |
21:54 | Karql | <FONT SIZE=10> <FONT SIZE = 5 > |
21:54 | Karql | ale miedzy FONT a SIZE nie moze nie byc odstepu |
Karql | mogli bysmy to gwiazdka zrobic poprzez | |
21:54 | Karql | /FONT *SIZE/ (tam sa dwie spacje przed gwiazdka) |
21:54 | Karql | ale to brzydko wyglada i przedewszystkim jest nie czytgelne |
21:55 | Karql | zrobimy to z plusem /<FONT +SIZE *= *[0-9]+ *>/ |
Karql | spacja+ miedzy font i size bo tam nie moze nei byc psacji * przy rownasie i na koncu bo tam moga lub nie musza | |
Karql | i + po klasie [0-9] | |
Karql | bo nie moze nie byc liczby | |
Karql | powotrzenia jak i ? moga odnosic sie do klasy | |
Karql | naiwasow itp | |
21:56 | Karql | np /Ala ma kota( i psa)?/ |
Karql | czyli ala ma kota | |
Karql | i ale moze miec psa choc nie koniecznie | |
nooga | bo z+ to tak naprawde syntactic shugar dla zz*, engine regexpowy zamienia sobie z+ na zz* podczas parsowania | |
Karql | dobra jasne tutaj wszystko | |
nooga | ...chyba | |
Morroth | jak sloneczko | |
smutny | no tez troche sie zamotalem | |
Karql | nooga: ale lepiej pisac z plusami:) | |
21:57 | nooga | wiadomo |
Karql | smutny: czego nie rozumeisz | |
Karql | ? | |
nooga | po to to jest | |
nav | kuuupaaa | |
nooga | za duzo sie wtracam :/ | |
Karql | nooga: spox | |
Karql | pisz | |
Karql | :) | |
nooga | wyglada jakbym mial jakis komplex :D | |
smutny | Karql, juz wszystko musialem jeszcze raz przeczytac | |
Karql | spox | |
Karql | dobra lecimy dalej moi mili | |
Karql | :) | |
Karql | bez skojarzen:) | |
Morroth | heh | |
Karql | teraz przejdziemy do troszke dokladnieszjych powtorzen | |
21:58 | Karql | czyli zakresu dopasowan |
Karql | {min,max} | |
Karql | uzywamy tak samo jak ? lub + lub * | |
Karql | ale mozemy podac dokladne zakresy | |
Karql | np | |
21:58 | Karql | /ha(ha){2,5}/ |
21:58 | Karql | ktos ma rozny smiech moze miec tutaj hahaha lub nawet hahahahahaha |
21:59 | Karql | mozemy tutaj uzywac mimimalna liczbe dopasowan |
Karql | czasem sie przydaje | |
21:59 | Karql | /(cos){min,}/ |
21:59 | Karql | ten przecinek musi tam byc |
Karql | mozemy rowniez podac dokladna | |
21:59 | Karql | /(cos){dokladna}/ |
21:59 | Karql | to jest chyba jasne |
Karql | bo tutaj nei ma nic skomplikowanego | |
Karql | :) | |
22:00 | Karql | dobra |
Karql | przejdziemy teraz do odwolan wstecznych | |
Karql | szczerze powiedziawszy | |
Karql | rzadko sie ich uzywa | |
Karql | w wyszukiwaniu tekstu zas czesto sa w uzyciu | |
Karql | przy zamienianiu | |
Karql | (bedzie w przykladach) | |
Karql | na czym polega odwolanie | |
Karql | jak juz pisalem nawiasy maja jeszcze jedna funkcje | |
Karql | gurpuja | |
22:01 | Karql | i mozemy sie do niech odwolac poprzez /1 |
Karql | np | |
22:01 | Karql | /(ala) \1/ |
22:01 | Karql | w miejsce \1 podstawi sie to co jest w nawiasie |
Karql | mozemy oczywiscie uzywac kilu nawiasow | |
Karql | i wtedy beda kolejne numery \1 \2 \3 etc | |
22:02 | Karql | pary nawiasow numerowane sa odlewej w kolejnosci otwarcia |
Karql | mulander mowie zebym powiedzial ze to z angielskiego backtracking:) | |
Karql | thc | |
Karql | thx* | |
Karql | zrobmimy | |
22:03 | Karql | z tym jeden sensowny przyklad jaki przychodzi mi do glowy przy wyszukiwaniu |
Karql | np piszemy jakis tekst obramiamy go duzo razy | |
Karql | moga nam sie zdarzyc zdublowane slowa | |
Karql | jak sprawdzic czy takie sa | |
Karql | posluzymy sie tekstem ex_text.txt | |
Karql | ktory wczesniej sciagnelismy | |
Karql | zrobimy takie wyrazenie | |
22:03 | Karql | /\<(.+)\> +\<\1\>/ |
22:03 | Karql | odpalmy |
22:04 | Karql | egrep '\<(.+)\> +\<\1\>' ex_text.txt |
22:04 | Karql | \< i \> |
Karql | granica slow | |
Karql | () naiwas grupujacy | |
Karql | .+ dowolny ciag w nawiasie | |
Karql | pozniej po pierwszej granicy dowolna liczba spacji | |
Karql | i pozniej czy wyraz z tego nawiasu | |
Karql | sie powotrzyl | |
22:05 | Karql | karql@noname:~/wyklady$ egrep '\<(.+)\> +\<\1\>' ex_text.txt |
22:05 | Karql | tutaj dwa slowa slowa sie dubluja |
Karql | czyli znalazlo nam | |
Karql | dublujace slowa | |
Karql | to jest akurat nie doskonale | |
Karql | bo egrep sprawdza linie po lini | |
Karql | czyli jakby dublujacy byl w nowej | |
Karql | to juz by nie znalazlo | |
22:06 | Karql | ale zeby napisac progos co to dobrze sprawi trzeba by bylo troszke wiecej sie pomeczyc a my mamy wprowadzenie |
Karql | wiec nad tym sie nie bedziemy rozczulac | |
Karql | dobra | |
Morroth | z tym thc to lach | |
Karql | i jak jasne | |
Karql | ? | |
Karql | tak:) | |
Morroth | dla mnie tak | |
smutny | mi tu | |
Karql | fajnie:) | |
java | :) | |
22:07 | Karql | smutny: jasne |
Karql | ? | |
smutny | jasne Karql | |
Karql | dobra to lecimy:) | |
Karql | teraz zajmiemy sie unikeim | |
chochlik | pamiętasz mnie jescze ? :P | |
Karql | chochlik: +m jest | |
chochlik | fak sry nie te okno ;/ | |
Karql | tutaj http://wyklady.vexillium.org/karql/ex_text.txt | |
Karql | dla tych co sie pogubili | |
22:08 | Karql | i nie moga znalezc tego pliku |
Karql | :) | |
Karql | lux | |
Karql | jedziemy z tym unikiem | |
Karql | jak pisalem mamy meta znaki i znaki | |
Karql | ale co jesli chcemy w wyrazeniu | |
Karql | zrobic zeby meta znaki byly jako zwykly tekst | |
Karql | musimy od nich ucieknac zeby staly sie zwykklym tekstem | |
Karql | np chcemy zeby | |
22:09 | Karql | znalazlo wiersze gdzie wystepuje (kot) |
Karql | nawiasy NIE grupuja | |
Karql | czyli zrobimy /\(kot\)/ | |
Karql | tak samo mozemy z KAZDYM meta znakiem robic | |
Karql | \? \* \[ \\ | |
Karql | etc | |
Karql | to jest prosciutkie | |
22:10 | Karql | dobra pokortce omowilem meta znaki |
Karql | teraz bonus dla was:) | |
smutny | dalej! | |
LySy | :> | |
Morroth | :) | |
Karql | http://wyklady.vexillium.org/karql/metaznaki.txt | |
Karql | zrobilem | |
Karql | wam taka mala tabelke | |
Morroth | przyda sie | |
Karql | zebyscie nie musieli gonic po calych logach co jest co | |
Karql | :) | |
smutny | bosko ;] | |
Karql | Morroth: wiem ze sie przyda | |
Karql | :) | |
Karql | dobra teraz przejdzmy do praktyki | |
22:11 | Karql | jeszcze dodam o dwoch opcjach egrepa |
Karql | tka jak pisalem o wielkosci znakow | |
Karql | chcemy sprawdzi wszystkie wystapienia kowlaskiego nie wazne z jakiej litery | |
Karql | to mozemy zrobic /[Kk][Oo][Ww][Aa][Ll][Ss][Kk][Ii]/ | |
22:12 | Karql | ale jak to wyglada |
Karql | do tego mamy opcje | |
Karql | -i w egrpeie | |
22:12 | Karql | egrep -i 'kowalski' |
22:12 | Karql | -i dziala tak ze wielkosc liter nie ma znaczenia |
Karql | durga opcja ktora sie przydaje kest -v | |
Karql | czyli negacja | |
Karql | wypisz wszystkie wozrce | |
Karql | sory | |
Karql | wypisz wszystkie wiersze* | |
Karql | ktore nie pasuja do wyrazenia | |
22:13 | Karql | tak jak to DJ_cool_ wczoraj skubaniec pokazywal killowanie gdzie nie bylo jego grep -v djcool |
Karql | Dobra podstawy mamy za soba | |
Karql | Pamietajmy o jednej rzeczy | |
Karql | Albo dwoch mniejsza z tym | |
22:14 | Karql | W wyrazeniach regularnych wazne jest zrobic takie wyrazenei zeby pasowalo do tego co chcemy |
Karql | I NIE pasowalo do tego czego nie chcemy | |
Karql | w praktyce obie sa tak samo wazne | |
Karql | Musimy pamietac rownie ze wyrazenia regularne jak jezyk moga sie roznic w zaleznosci od implemetnacji | |
Karql | tak jak np w jezyku polski w roznych regionach sa jakies dialekty ipt | |
22:15 | Karql | Jak wiaodme najlepiej cwiczyc na przykladach |
Karql | Wiec teraz po cwiczymy | |
Karql | Teraz zadanie dla was | |
Karql | http://wyklady.vexillium.org/karql/godziny.txt | |
Karql | tutaj macie tekst | |
Karql | musimy napisac wyrazenie | |
Karql | co sprawdzi godziny w formacie 24h | |
Karql | z dopuszczeniem 0 na poczatku | |
Karql | np 09:59 | |
Karql | etc | |
22:16 | java | egrep '([0-9]){2}\:([0-9]){2}' godziny.txt |
Karql | nie zrobimy /[0-2][0-9]:[0-5][0-9]/ | |
Karql | wlasnei o tym pisze | |
Karql | a pozatym jest +, | |
java | sry | |
Karql | +m | |
java | myuslem ze zadanie | |
Karql | nie zrobimy tak | |
Karql | bo popatrz u ciebie moze byc 99:99 | |
Karql | nie zrobimy tak jak ja podalem | |
Karql | bo moze byc 29:10 | |
Karql | np | |
22:17 | Karql | a takiej godziny nie ma |
Karql | dobra | |
Karql | piszcie wyrazeniado mnie na priv | |
Karql | ja sprawdze i powiem 3 dobrze | |
Karql | z tego pliku powinno wrocic 6 wierszy | |
Karql | do 20 po macie czas | |
Karql | ja ide sie wody napic | |
Karql | :) | |
siano | :) | |
22:18 | Karql | nikt sie nie polapie |
Karql | na to?:) | |
22:19 | zim | ziew |
defc0n | ;p | |
Karql | dostaje jakies ale nie prawidlowe do konca | |
Karql | :) | |
22:20 | Karql | z pliku ma wam 6 wyswietlic |
Karql | nie ma godziny np 29:10 | |
Karql | dobra 20 po juz jest | |
Karql | pokazac rozwiazanie | |
Karql | czy ktos jeszcze proboje | |
Karql | ? | |
smutny | dajk jeszcze pare minut [; fajna zabawa [; | |
b3x | próbuje* ;-) | |
Morroth | zmeczony jestem :) | |
22:21 | java | 25 |
Karql | dobra | |
java | do | |
Karql | do 25 | |
Karql | podopowiem wam | |
Karql | ze musi byc przynajmneij jeden ? i jedna | | |
22:22 | Karql | i pamietajcie o ^ na poczatku |
Karql | :) | |
Karql | bo wam moga glupoty powychodzic | |
22:23 | damianmyst | Karql, jakis homework zarzucisz? :) |
Karql | tak | |
Karql | zrobie zadanka ale dzisiaj chyba nie zdarze | |
Karql | :) | |
damianmyst | mhm | |
22:24 | damianmyst | dobra Karql, ja lece. Wyklad miodzio ;D |
Karql | jeszcze nie koniec | |
Karql | :) | |
22:25 | Staszek | -v to bylo zaprzeczenie tak? |
Karql | negacja | |
Karql | tak | |
DJ_cool_ | tak | |
22:27 | siano | jak z tym przykladem ? |
siano | zrobil ktos ?:p | |
Karql | no prawie im wyszlo | |
Karql | :) | |
22:28 | siano | to ja rzuce |
java | :) | |
Karql | siano: twoj nie do konca | |
Karql | :) | |
Staszek | Juz prawue ;] | |
siano | no jak to ?:p | |
Karql | - raz u ciebie nie ma godziny np 19 | |
siano | aa | |
Karql | bo masz tylko do 14 | |
siano | widze | |
Karql | a dwa nie ma czegos takiego jak [00-59] | |
22:29 | Karql | tylko musisz [0-5][0-9] |
Karql | :) | |
Karql | dobra rozciagnelo sie to troszke | |
Karql | :) | |
Karql | zrobimy to wspolnie | |
Karql | mamy zalozenie | |
Karql | zeby byly 24h | |
Karql | tak | |
22:30 | Karql | moze wystepowac 0 lub nie musi |
Karql | czyli moze byc godzina 09 lub 9 | |
Karql | dla godziny 20stej etc | |
Karql | moze byc mask 23 | |
Karql | wiec jak pisalem dla godzin nie moze byc [0-2][0-9] | |
Karql | bo bedzie mogla byc godzina 29 | |
Karql | wiec rozbijemy to najpierw na 3 czesci | |
22:31 | Karql | /^(0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/ |
22:31 | Karql | pierwsz tutaj jest dla godzin 0-9 |
Karql | drgua 10-19 | |
Karql | i trzecia 20-23 | |
Karql | zeby to uproscic | |
Karql | mozemy dwie pierwsze polaczyc | |
22:31 | Karql | /^([0-1]?[0-9]|2[0-3]):[0-5][0-9]/ |
22:31 | Karql | bo dla godzin 0-9 i 10-19 |
Karql | sa takie same zalozenia | |
22:32 | Karql | podam jeszcze jeden sposob |
22:32 | Karql | /^([0-2]?[0-3]|[0-1]?[0-9]):[0-5][0-9]/ |
22:32 | Karql | jak sie dluzej nad nim zastanowicie |
Karql | to tez zobaczycie ze jest dobry | |
Karql | ale ja bym uzywal przed ostatniego | |
Karql | poniewaz raz krotszy | |
Karql | dwa czytelniejszy:) | |
Karql | pytanka | |
siano | jestem glupi :) | |
smutny | hmm czemu na to nie wpadlem ? ;] | |
siano | choc to nie pytanie | |
22:33 | Karql | zaraz przejdziemy do perla |
Morroth | terasz rozumiem | |
Karql | i dwa przyklady wam pokaze | |
Karql | :) | |
Karql | ale zastanowimy sie wspolnie | |
Karql | nad regexpem | |
Karql | :) | |
smutny | dzieki! | |
Karql | dobra to jedziemy szkoda czasu | |
Karql | :) | |
Karql | Przechodzimy do perla | |
22:34 | Karql | jak juz pisalem wyrazenia moga sie minimalnie roznic |
Karql | nie inaczej jest meidzy perlem i egrepem | |
Karql | Nie bedzie tutaj chodzilo o znajomosc perla | |
Karql | bo wiekszosc z was zapewne nie zna ale wydaje mi sie ze po tym wykladzie wam sie spodoba | |
Karql | jak sie spodoba to odsylam do logow mulandera gdzie fajnie opisal podstawy | |
22:35 | Karql | Dobra |
Karql | teraz dam linka do roznic miedzy perlem a egrepem | |
Karql | http://wyklady.vexillium.org/karql/perl.txt | |
Karql | zobaczcie | |
Karql | w perlu | |
Karql | funkcjonuja skorty | |
Karql | jak np \d zastpeuje [0-9] | |
Karql | w tym linku macie dokladnie co i jak | |
Karql | dalej | |
Karql | w perlu | |
22:36 | Karql | jesli chcemy ominac roznice w wielkosci liter robimy na koncu wyrazenie flage i |
Karql | np if ($zmienna =~ /wyrazenie/i) | |
Karql | jesli chcemy znegowac to robimy !~ | |
Karql | zamiast =~ | |
22:37 | Karql | to co jest w nawiasach zostaje przekazane do zmiennych $1 $2 etc |
Karql | tak jak tam jest pokazane | |
Karql | :) | |
Karql | Dobra napiszemy teraz programik | |
Karql | ktory przetowrzy nam liste zadan z perla i zrobi ranking | |
Karql | link do zadan: http://wyklady.vexillium.org/perl_zad.txt | |
Karql | tutaj macie link do zadanek | |
22:38 | Karql | ranking jest w takiej postaci |
Karql | 1. [2570 pkt] Karql ( 1-26 ) | |
Karql | 2. [2395 pkt] Kamil ( 1-26 ) | |
Karql | 3. [2105 pkt] nooga ( 1-3 5-12 14-26 ) | |
Karql | teraz pomozcie mi zrobic wyrazenie | |
Karql | ktore do zmiennej $1 zapisze miejsce $2 pkt $3 nick a $4 zrobione zadania | |
22:39 | Karql | to juz bedzie troszke trudniejsze |
Karql | :) | |
mulander | hmm zaraz dam linka :P | |
Karql | ić | |
Karql | :) | |
DJ_cool_ | tak | |
Karql | dobra to jak myslimy | |
Karql | nad tym | |
Karql | czy podam na tacy | |
Karql | i omowie | |
Karql | ? | |
22:40 | mulander | myslimy |
mulander | :P | |
java | :) | |
hawk | ;] | |
java | myslimy | |
Karql | spox | |
smutny | moge pomyslec spiac ;] | |
Karql | to bez +m | |
java | kazdy osobno | |
java | a poziej burza mozgow | |
java | :) | |
Karql | to co dac wam czas? | |
Karql | mysle ze nei | |
java | tak | |
Karql | walniemy na ogole | |
Karql | :) | |
Karql | pierwsze chcemy miejsce tak | |
Karql | wiec zaczynamy od poczatku | |
22:41 | Karql | /^(\d+\.) |
22:41 | Karql | \d to jest [0-9] |
Karql | \. | |
Morroth | dobra ja juz zwijam szkola jutro i takie tam | |
Karql | unik od kropki czyli jest tutaj | |
Morroth | pozdro wszystkim | |
Karql | zwykla kropka | |
Karql | Morroth: pa | |
mulander | http://kewlnet.int.pl/~mulander/mulkurs.pl | |
Karql | mulander: ja im dam linka pozniej | |
Karql | nie psuj zabawy | |
Karql | :) | |
mulander | :P | |
mulander | sorki :> | |
Karql | teraz musimy pobrac ilosc pkt | |
mulander | udawajcie ze nie dalem linka :> | |
smutny | mulander You don't have permission to access [; | |
22:42 | Karql | /^(\d+?\.)\s\[\s*(\d+?)\spkt\] |
22:42 | Karql | po kropce wystpuje jedna spacja czyli znak bialy \s |
Karql | pozniej unikamy kalsy znakow | |
22:43 | Karql | w nawiasach kwadratowych moze wsystapic spacja badz kilka leczn nei musi |
smutny | Karql dzieki za rozjasnienie regexp, fajnie ci poszlo, jutro czytam loga, wszystkim dobrego zycze [snu] , narqa! | |
Karql | pozdro | |
mulander | poprawione uprawnienia na pliku | |
Karql | pozniej bierzemy punkty do zmiennej numer dwa pozniej jest \s bialy znak pkt i unik klasy znakow | |
Karql | mulander: ;/ | |
Karql | :) | |
Karql | teraz nick | |
22:43 | Karql | ^(\d+?\.)\s\[\s*(\d+?)\spkt\]\s(\w+?)^(\d+?\.)\s\[\s*(\d+?)\spkt\]\s(\w+?) |
22:43 | Karql | proste |
22:44 | Karql | spacja \s i \w czyli slowa |
Karql | +? ma specjalne znaczenie w perlu | |
Karql | non greedy | |
Karql | czyli ze nie jest chciwy | |
Karql | jesli by tego nie bylo to lapalby ile moze | |
Karql | i zostaly nam punkty | |
22:44 | Karql | ^(\d+?\.)\s\[\s*(\d+?)\spkt\]\s(\w+?)\s+\(\s([-\d ]+?)\s+\) |
22:44 | Karql | bo nicku jest dowolna liczba znakow bialych \s+ |
22:45 | Karql | pozniej nawias czyli robimy \( |
Karql | pozniej do zadan jedna spacja \s | |
Karql | zadanka | |
Karql | moga miec cyfre spacje i myslnik wiec zrobilem klase znakow | |
Karql | [-\d ] | |
mulander | http://kewlnet.int.pl/~mulander/mulkurs.txt ( poprawione :P ) | |
Karql | i po tym dowolna liczba znakow bialych \d | |
Karql | \s* | |
22:46 | Karql | i zamykamy nawias \) |
Karql | wiec to jest cale wyrazenie | |
Karql | :) | |
Karql | teraz programik | |
java | *<@Karql> i zostaly nam punkty - zrobione zadanie a nie punkty | |
Karql | tak | |
Karql | sory | |
Karql | :) | |
Karql | http://wyklady.vexillium.org/karql/perl_zad.pl | |
Karql | zebyscie teraz nie musieli instalowac modulow | |
Karql | dam output | |
Karql | programu | |
22:47 | Karql | http://wyklady.vexillium.org/karql/perl_zad_output.txt |
Karql | prosze | |
Karql | :) | |
Karql | zaznajomcie sie tak w miare:) | |
mulander | yy to nie jest przerobiony moj skrypt ? :P | |
Karql | nie:) | |
Karql | ty robiles kiedys cos takieg | |
Karql | a ja zrobilem swoj podobny | |
Karql | :) | |
22:48 | Karql | bo wyklady perl to parsowanie tego mi sie najbardzije rzucilo na mysl |
Karql | :) | |
java | nie robcie offtopa | |
Karql | java: zobaczyles program | |
Karql | ? | |
java | tak | |
Karql | mozemy jechac dalej | |
Karql | ? | |
java | mysle ze tak | |
22:49 | Karql | jeszcze podam jeden przykladowy program i konczymy |
Karql | :) | |
java | nie zostalem sam | |
java | ? | |
Karql | nie wiem | |
Karql | chociaz dla jednej osoby warto | |
Karql | :) | |
mulander | :P | |
smutny | jescze zyje | |
smutny | ;] | |
Karql | spox | |
Karql | :) | |
hawk | ja tez | |
Karql | to ostatni progos | |
java | mnie interesuje wiec dalej | |
Karql | http://wyklady.vexillium.org/karql/google.txt | |
Karql | sciagnijcie to | |
22:50 | Karql | jest to strona z rezultatami google |
Karql | nie zrobimy dynamicznego skryptu | |
Karql | bo do tego trzba bardziej zaawansowanego modulu | |
Karql | a nie mamy czasu sie tutaj bawic w instalowanie itp | |
Karql | a chodzi glownei o same wyrazenia regularne | |
java | ok | |
Karql | dobra polecimy tak | |
22:51 | Karql | dam skrypt |
Karql | i bede omawial | |
mulander | :P | |
java | :) | |
smutny | oks sybko ;] | |
Karql | http://wyklady.vexillium.org/karql/perl_google.pl | |
Karql | on jest okomentowany | |
Karql | ale jeszcze sam dopowiem | |
22:51 | Karql | my $google = join "\n", <>; |
22:51 | Karql | wczyta nam do zmiennej |
mulander | karql | |
Karql | to co podamy jako argument przy odpalaniu | |
mulander | jaka wtopa | |
mulander | chodz na priv | |
mulander | bo niechce ciebie publicznie kompromitowac :P | |
Karql | spox dziala to | |
Karql | :) | |
22:52 | Karql | $google =~ s/\n//g; |
22:52 | Karql | usuniemy |
Karql | biale znaki | |
Karql | nei biale | |
Karql | tylko znaki nowego wiersza | |
Karql | przeraszam was | |
22:52 | Karql | #!/usr/bin/perl |
22:52 | Karql | musi byc pierwszy |
Karql | przyzwyczajenie z Gynvaela programow w C | |
22:53 | Karql | ze komentowal u gory:) |
java | :) | |
Karql | ale nevermind | |
Karql | :) | |
Karql | usunelismy tam znaki nowego wiersza | |
Karql | zeby pracowac na jedenej lini | |
Karql | flaga /g | |
Karql | oznacza globalne | |
Karql | czyli wszystkie | |
22:53 | Karql | $google =~ s/<B>//ig; |
Karql | $google =~ s/<\/B>//ig; | |
22:53 | Karql | w tytulach wystepuja takig html pogrubienia |
Karql | wiec je tez usuniemy | |
Karql | i teraz petla | |
22:54 | Karql | puszczamy ja dopuki warunek jest prawdziwy |
Karql | musimy zauwazyc ze linki sa w takiej postaci | |
22:54 | Karql | <a class=l href="link">tytul</a> |
22:54 | Karql | aha |
22:55 | Karql | te dwa regexpy to tak dal pokazaania ze otwarte i zamkniete |
Karql | mozemy to zrobic jednym | |
22:55 | Karql | $google =~ s/<B>//ig; |
22:55 | Karql | sory |
22:55 | Karql | $google =~ s/<\/?B>//ig; |
22:55 | Karql | tak |
Karql | dobra | |
Karql | jak zobaczymy ze tam sa takie linki | |
Karql | to juz latwo z nich wyciagnac | |
Karql | duzo latwiej niz z tych zadan | |
Karql | czyli petla dopuki wystepuje nam cos takiego | |
22:56 | Karql | while ($google =~ /<a class=l href="(.+?)">(.+?)<\/a>/) |
22:56 | Karql | to mamy w zmiennych $1 i $2 |
Karql | kolejno linka i tytul strony | |
Karql | to teraz je tylko printujemy | |
Karql | jako ze dzialamy na jednej lini | |
Karql | to jesli bysmy to tak zostawili to byla by petla nieskonczona | |
Karql | :) | |
Karql | wiec musimy usunac to co juz uzylismy | |
22:56 | Karql | $google =~ s/<a class=l href=".+?">.+?<\/a>//; |
22:57 | Karql | jak widzicie tutaj nie ma /g |
Karql | jesli by bylo | |
Karql | to wtedy petla wykonala by TYLKO RAZ | |
Karql | bo nie bylo by juz linkow | |
mulander | ee | |
mulander | nie lepiej odrazu w while | |
mulander | uzywac s/// | |
mulander | ? | |
Karql | w while jest | |
22:58 | java | karql szczerze to nie wiem do czego dazysz, ale poczekam |
Karql | java: juz skonczylem | |
Karql | :) | |
java | aha | |
java | :) | |
java | i co dalej | |
mulander | Karql: w while wyciagasz zmienne | |
java | :) | |
Karql | mulander: od usuwania linkow jest w while a tamte przed zeby sie tylko raz wykonaly | |
defc0n | :] | |
mulander | a potem masz drugiego regexpa do usuwania tego samego | |
mulander | to samo moglbys zrobic | |
mulander | jednym s/// w while | |
Karql | no w sumie tak | |
Karql | :) | |
Karql | wiesz ze z perla jestes lepszy niz ja:) | |
22:59 | mulander | nie, to ty jestes leniwy :P |
mulander | ale dobra offtopic :P | |
22:59 | Karql | while ($google =~ s/<a class=l href="(.+?)">(.+?)<\/a>//) { |
22:59 | Karql | czyli tak mozemy w petli zrobic |
Karql | i pozniej po printowaniu nie dajemy juz | |
Karql | tego s/// | |
Karql | ale to takie zagadnienia bardziej perla dotyczace | |
Karql | a nam chodzi o regexpy | |
smutny | ostatecznie dobranoc | |
23:00 | java | no wlasnie regexpy |
java | :) | |
Karql | Dobra powoli dobiegamy do konca | |
java | nie | |
java | :) | |
Karql | tak tak:) | |
Karql | 2 godzinki juz | |
Karql | material omowiony | |
FreeS | heh | |
FreeS | ale sie wyrobiles ;> | |
FreeS | 31:01 | |
FreeS | *23:01 | |
java | hoi teraz troche praktyki i zobrazowania tego co sie "nauczylsimy" | |
Karql | Napisalismy dwa programiki:) | |
FreeS | od 21:01 | |
Karql | java: wlasnie o tym teraz | |
Karql | :) | |
Karql | Tak dzisiaj juz pewnie nie zdarze | |
Karql | ale postaram sie jak najszybciej umiescic zadanka | |
FreeS | heh | |
23:01 | Karql | tak jak to ma miejsce z perlem asm i c |
FreeS | Karql: spoko wyklad | |
java | ciii | |
Karql | wyslecie do mnie ja skomentuje ocenie itp:) | |
java | ehhh | |
Karql | Teraz na koniec moj mail: karql.pl@gmail.com | |
FreeS | bedziesz cos jeszcze robil to /prv to me ;> z checia poczytam | |
Karql | jesli macie jakies pytania | |
Karql | chcecie sie cos dowiedziec to zapraszam | |
java | daj jakiedos dluzszego regexpa i omowimy tu | |
java | :) | |
mulander | Karql: | |
Karql | tak samo przesiaduje tutaj na kanale itp | |
mulander | daj mu toi | |
Karql | mulander: wiem | |
mulander | co ci dalem na psi | |
mulander | ;P | |
Karql | wiec odpowiem | |
mulander | i omow ^^ | |
23:02 | mulander | albo nie |
mulander | niech java omowi ^^ | |
Karql | na koniec jeszcze jako ciekawostke | |
Karql | wyrazenie co muniek dal:) | |
java | hardcore | |
java | :) | |
java | ? | |
mulander | nie :P | |
Karql | http://wyklady.vexillium.org/karql/regex_ex.txt | |
Karql | wyrazenie do sprawdzania daty | |
Karql | :) | |
mulander | e tu mogles wkleic :P | |
Karql | nie zmiescilo by sie | |
Karql | :) | |
java | ) | |
Karql | I tym oto optymistycznym akcentem konczymy dzisiejszy wyklad | |
23:03 | DJ_cool_ | tak |
java | ^((((0?[1-9]|[12]\d|3[01])[\.\-\/](0?[13578]|1[02])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|[12]\d|30)[\.\-\/](0?[13456789]|1[012])[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|((0?[1-9]|1\d|2[0-8])[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?\d{2}))|(29[\.\-\/]0?2[\.\-\/]((1[6-9]|[2-9]\d)?(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00)|00)))|(((0[1-9]|[12]\d|3[01])(0[13578]|1[02])((1[6-9]|[2-9]\d)?\d{2}))|((0[1-9]|[12]\d|30)(0[13456789]|1[012])((1[6-9]|[2- | |
Karql | Mam nadzieje ze choc troche sie kumus przyda w poznaniu wyrazen regularnych | |
java | :) | |
Karql | java nie zmiescil sie | |
Karql | :) | |
mulander | java: niema calego | |
siano | dobry byl | |
mulander | :P | |
java | zmiescil | |
siano | trzeba przyznac :) | |
Karql | Dziekuje za uwage jak macie cos to walcie smialo. Bylo milo | |
Karql | Pozdrawiam |