21:00Temat 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
KarqlDobra zaczynamy
KarqlWitam wszystkich na wykladzie pod tytulem: "Wprowadzenie do wyrazen regularnych. Przyklady zastosowan w egrp'ie i perlu"
KarqlNa poczatek kilka ogloszen parafialnych:
21:01KarqlLudzi z opami i halfopami prosze o uszanownie trybu +m
KarqlBedzie czas na pytania
KarqlProsze nie pisac nickami
KarqlIgnoring JOINS PARTS QUITS NICKS from #wyklady
Karqlmam wlaczone ignorowanie to i tak nie bede tego widzial
KarqlPo kazdym tlumaczeniu bedzie czas na pytania. Wiec wszystko bedzie sie mozna dowiedziec co i jak.
KarqlJesli jednak jest jakas wazna sprawa prosze pisac na priv.
21:02KarqlKoniec ogloszen.
KarqlJestem 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:03KarqlDobra najlpierw co to sa wyrazenia regularne:
KarqlZ angielskiego Regular Expression czesto wystepuja pod nazwa regex lub regexp
21:04KarqlSa dwa silniki wyrazen regularnych DFA unikoswe i NFA o ktorych bedzie dzisiaj mowa.
KarqlWyrazenia NFA sa o wiele bardziej rozbudowane i sa zaimplementowane w takich jezykach, jak perl, ruby, python egrep etc
21:05KarqlWyrazenia regularne sa bardzo skutecznym mechanizmem przetwarzania wszelakich tekstow i innych danych. Pozwalaja uproscic przegladanie poczty, dokumentow tekstowych itp.
KarqlOdgrywaja wazna role w programowaniu w perlu, pisaniu skryptow cgi etc
KarqlGdzie np trzeba zwalidowac formularze itp. Zastosowan jest multum
21:06KarqlJa przedstawie jeden z zycia
KarqlNp razm mialem taka sytuacje ze znajomy przez przypadek wlaczyl na forum autoczyszczenie
KarqlI wszystkei tematy z jednego dzialu poszly sie pasc
KarqlKopie mial stara wiec nie dalo sie usunac i wgrac od nowa
21:07KarqlJeszcze lepsze bylo to ze byly tabele posts i posts_text
Karqlw posts byly numer id tematu a w posts_text nie
Karqli tutaj z pomoca przyszly wyrazenia regularne ktore dalo sie napisac w kilka minut
Karqla jakby trzeba bylo recznie przeszukac 30 tysiecy linijek to zajelo by troche
Karqldobra chwile odpoczynku
Karql:)
21:08noogahm
javalol
Karqlcos jest nie jasnego
java:)
Karql?
beomboiqrfa jak spamuja
beomboi;p
javawszytsko jasne
Karqllux to jedziemy dalej
javanop
smutnyKarql, bardzo trudna mowa
javazdazylem
KarqlSory ze to takie przynudzanie jest ale wstepu nie da sie inaczej zalatwic:)
21:09KarqlDobra 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
KarqlDobra przejdziemy do konkretow
21:10KarqlPierwsze jeszcze podam narzedzia dla windowsowcow
KarqlMysle ze najlepiej uzyc cygwina http://www.cygwin.com/ tam jest i perl i egrep
Karqlhttp://www.activestate.com/Products/Download/Download.plex?id=ActivePerl Interpereter perla
Karqlhttp://unxutils.sourceforge.net/ tutaj jeszcze cos takiego znalazlem nie wiem nie teestowalem:)
21:11KarqlWyniki programow etc bede wklejal dla tych co nie maja
KarqlDobra lecimy
KarqlSciagnijcie te przykladowe logi: http://wyklady.vexillium.org/karql/ex_log.txt
KarqlW wyrazeniach regularnych mamy meta znaczniki i zwykly tekst
Karqlo co chodzi zaraz wytlumacze
Karqlegrep '<[ @%+]Karql>' ex_log.txt
Karqlodpalmy takie polecenie
21:12Karqlegrep jest to program ktory przetwarza podany plik wiersz po wierszu i zwraca wiersze ktore pasuja do wzorca
Karqluruchamiamy go w ten sposbo
Karqlegrep 'wrzorzec' plik
Karqlwynikiem tego polecenia bedzie mneij wiecej cos takiego
21:13Karql20:57 <@Karql> tutaj mam opa
Karql20:58 <@Karql> :)
Karql20:59 < Karql> tutaj nie mam opa
Karql20:59 < Karql> tu jest druga wypowiedz o godzinie 20:59
Karqlzwroci nam te linijki z pliku ex_log.txt
Karqldobra teraz jeszcze jeden przyklad uzycia chcemy wypowiedzi o godzinie 20:59
Karqlzrobimy za tem
21:13Karqlegrep '^20:59 <[ @%+]Karql>' ex_log.txt
21:13Karqlnarazie tutaj nie wszystko jest jasne ale po wykladach bedzie to jasne jak sloneczko
21:14Karqlw tym wyrazeniu
Karql^ [ ] to sa meta znaki
Karqlreszta to jest zwykly tekst
Karqlich znaczenie wyjasnie pozniej
Karqlmoze pytanka
javanie
defc0nnie ;p
javafastly
java:)
conelwszystko jasne... dawaj dalej
Morrothczyli najprosciej egrepem rozgryzac??
21:15pawlikmacie gdzieś loga?
hawk;]
Karqlpawlik: log bedzie na stronei
Karqljak skoncze wyklad
defc0npawlik: bedzie po
pawlik:]
Karqldobra lecimy dalej zaczna sie meta znaki to juz nudno nie bedzie
defc0n;]
Morrothno to lecimy
chochlikKarql: 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:16Karqlspox jak cos to pisz na priv jak jest +m
Karqldobra wszystkie wyrazenia ktore bede tutaj dawal dam miedzy dwa slashe
21:16Karql/wyrazenie/
21:16Karqlteraz bardzo wazna rzecza jest zebysmy nauczyli sie myslec jak wyrazenia regularne
Karqlczyli wyrazenie /kot/
Karqlnie pasuje
Karqldo ciagu w ktorym wystepuje wyraz kot
21:17Karqltylko PASUJE do ciagu w ktorym wystepuja kolejno litery k o t
Karqlponiewaz wyrazenia nie znaja pojecia slow etc
Karqlchodzi tutaj ze jakbyscie mysleli tak jak podalem ze nie mozna
Karqlto by byly np takie akcje ze macie wyrazenie /kot/
Karqlktory pasuje np do maskotka bo ona zawiera w sobie trzy litery jedna po drugiej k o t
21:18Karqlteraz wezmy pierwszy przyklad z egrepa
21:18Karql/<[ @%+]Karql>/
21:18Karqlpasuje jesli w ciagu wystepuje
21:19Karql< pozniej (albo spacja albo @ albo % albo +) pozniej kolejno litery K a r q l i znak >
Karqlczyli pasuja jesli w ciagu znajdzie sie
Karql< Karql> albo <@Karql> albo <%Karql> albo <+Karql>
Karqljest tak bo moge miec albo voice albo opa albo etc
Karql:)
21:20Karqldlaczego nie dalem wzorca samego Karql?
Karqlponiewaz
Karqljak pisalem pasowaly by do niego wszystkie wiersze w ktorym wystepuja litery K a r q l po sobie
Karqlczyli by pasowalo przywitanie nextora
Karqla my chcielismy tylko wersy mojego autorstwa
21:21Karqlno poczatek za soba
Karqlcos jest nie jasne w tym co powiedzialem?
smutnydalej, dalej :]
conellec dalej
Morrothmore
mogharKarql, jedno pytanie
Massgo go
javafastly
Karqlpowiem jeszcze dlaczego w drugim przykladzie jest ^
java:)
Karqlponiewaz chcemy tylko
Karqlwyrazenia moje
noogacat plik | grep 'pattern'
moghara jesli chcielibysmy szukac takiego ciagu: [a] ?
b3xjava, najpierw angielskiego się poucz.
noogajakby ktos nie mail egrepa
Karqla anonim mnie cytowal
Karqlwiec jego tez by wypisalo
Karqlale to zaraz bedzie jasno
Karqlnooga: tak tez moze byc
Karqlto jest przekazywanie strumieni
21:22Karqlz stdout jednego polecenia na stdin drugiego czyli jest to rownowazne
Karql:)
Karqldobra teraz polecimy z meta znakami
javab3x: :)
mogharKarql, ?
Karqlmyslalem ze to wolniej pojdzie
mulanderKarql: nie kradnij roboty DJ_cool_owi :P
Karqlspox
Karqltylko przypomnialem:)
DJ_cool_;d
Karqldobra przechodzimy do meta znakow
21:23KarqlZaczniemy od /^/ i /$/
Karqlczyli od poczatku i konca wiersza
Karqlnapomnialem juz ze w drugim przykladzie egrepa byl uzyty meta znak ^
Karqljesli by go niebylo
Karqlto wyswietlilo by cytowanie mnie:)
21:24Karqlte znaki nazywaja sie kotwiczki z angielskiego anchors
Karqldobra
Karql^ oznacza poczatek wierszu
Karql$ koniec
Karqlmamy wyrazenie
21:24Karql/^kot$/
21:24Karqlczyli pasuje do ciegu w ktorym najpierw wystepuje poczatek wiersza pozniej kolejno litery k o t i pozniej zaraz koniec wiersza
21:25Karqlpytania
Karql?
coneldalej prosze
smutnynone
mogharKarql
damianmystdalej ;)
chochlikhmmm
chochlikkarql
chochlikpytanie
mogharnie odpowiedziales na moje poprzednie
Karqlmoghar: ktore?
Karqlchochlik: jakie
Karql?
chochlikcyzli /^kot$/ by nie pasowało np. do "kot blebel"
chochlik?
Karqlnie
nooganie
nooga:D
conelnie
Karqlnapisalem
chochlikoke
illusionjava: polecam bardziej egrep [;
mogharjak by napisac, jesli szukalibysmy wyrazenia [a] ?
chochlikdalej
21:26smutnydalej!
Karqlze " czyli pasuje do ciegu w ktorym najpierw wystepuje poczatek wiersza pozniej kolejno litery k o t i pozniej zaraz koniec
Karqlwiersza"
noogapasowalo by do linii zawierajacej dokladnie "kot"
noogabez "
javaillusion: ?
Karqldobra czyli ten meta znak juz jasny
Karql?
illusionod grepa
smutnyniom
Morrothtak
Karqllux idziemy dalej
21:27KarqlTeraz zajmiemy sie klasa znakow
Karqlczyli [...]
Karqlza te ... dajemy znaki jakie moga wystapic
Karqldopasowuje to w jednym miejscu
Karqltak jak bylo w przykladzie z [ @%+]
Karqlczyli w tym miejscu gdzie jest klasa moze wystapic znak w niej podany
21:28Karqlprzyklad:
Karqlchcemy wyszukac w tekscie
Karqlwiersze w ktorym wystepuje Kowalski i pani Kowalska moga oni z braku szacunku byc pisani z malej litery
Karqlczyli zrobimy wyrazenie /[Kk]owalsk[ai]/
21:29Karqlto 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
Karqlw klasie znakow mozemy uzywac - ktory jest meta znakow w klasie normlanie wystepuje jako zwykly tekst
Karql- jest to zakres
Karqlnp nie musimy wypisywac [abcdefgh] tylko zrobic [a-h] tak samo z liczbami [0-9]
21:30Karqljesli chcemy w klasie uzyc myslnika musimy go dac na poczatku
Karqldobra
noogamozna dac flage i po / to zignoruje case chyba
Karqlpytania z tego mataznaku
Karqlnooga: tak
javanie
Karqlale tu chodzi o przyklad
damianmystja mam
noogaacha
javadalej
Karqlo tym pozniej powiem
Morrothapetyt rosnie w miare jedzenia - dawaj
Karql:)
mulandernooga: / to nie jest znak ucieczki.
21:31Karqlo innym sposobie ignorowania
conelnooga: mozna ale teraz bylo o [ ] a nie o opcjach
b3xKarql, proponuje branie wiecej materialu miedzy przerwami i wyjscie poza pierwsze zagadnienie, co jest 10% podstaw...
Karqlznakow
mulanderjak juz to \
Karqldamianmyst: pisz
Karqlb3x: tu sa tez poczatkujacy
damianmystjuz nie mam ;p
mulandera sorx nie zawuwazylem ze ty o insensitive piszesz
mulandermy bad; )
Karqlto musze dokladnie zeby sie nie pogubili:)
LySy:>
mulanderale w tym przykladzie co karql dal
java:)
coneldobra lec dalej
damianmystchcialem spytac o to ignorowanie...ale juz spytali ;)
LySydajesz rade, mow dalej ;_)
L0RKarql: poczatkujacy poczatkujacymi, ale to nie sa trudne zagadnienia i kazdy ogarnia
mulander/i bylo by niezbyt dobrym pomyslem
L0Rrob wiecej na raz ;]
LySy!+m
mulanderbo pasowalo by rowniez KOWALSKI itd
smutny+m!
21:32KarqlL0R: ale chce miec jakas komunikacje z wami
Karqlzebym widzial ze nie spicie
Karql:)
Karqlspox lecimy dalej
mulanderKarql: usypianie
javahaha
noogamulander: /.../i
mulanderto moja specjalnosc
mulander;P
Karqldobra
mulandernooga: wiem sorx, doczytalem po fakcie ;)
Karqlteraz wspomne o negacji klasy znakow:)
Karqlczyli o [^...]
Karqlnp [^abc]
Karqlwszystko oprocz abc
Karqla lub b lub c
Karqlto jest chyba jasne
21:33Karqlczasami lepiej jest tego uzyc
Karql:)
Karqlwidzimy ze jest tutaj ^ meta znak pozcatku wiersza
Karqlale w klasie znakow zmienia on swoje znaczenie i neguje klase znakow
Karqlale tylko jesli jest na poczatku
Karqlnie moze byc [abc^def]
Karqlbo wtedy bylby traktowany jako zwykly znak
21:34Karqlprzyklad uzycia tego moze byc np
Karqlchcemy aby jakis ciag nie mogl zaczynac sie od cyfry
Karqlzrobimy wiec:
21:34Karql/^[^0-9]/
21:34Karql:) fajne co:)
KarqlDobra kolejnym meta znakiem bedzie . (kropka)
Karqlczyli dowolny znak
21:35Karqlnp /ka./
Karqlpasuje jesli w ciagu wystepuja kolejno kac kat kab etc
Karqlkazdy znak
Karqlw miejsce kropki moze byc
Karqlmozemy to wykorzystac np gdy chcemy znalezc dzisiejsza date
Karqlktora moze byc w 3 postaciach
Karql9.4.2006 9-4-2006 9/4/2006
21:36Karqlmozemy napisac to na kalsie znakow
21:36Karql/9[-./]4[-./]2006/
21:36Karqlale z kropka jest krocej i czytelniej
21:36Karql/9.4.2006/
21:36Karqlpamietajmy jednak ze kropka dopasowywuje kazdy znak
Karqlwiec moze byc 9a4b2006
21:37Karqllub 91422006
Karqlwiec musimy sie zastanowci
Karqlzastanowic*
Karqlwiec czy powinno sie uzywac kropki?
Karqlpierwsze musimy znac
Karqldobrze tekst ktory przerabiamy
Karqlczasami lepiej jest uzyc dla bezpieczenstwa klasy znakow zeby nic nie porzadanego sie nam nie przedostalo
Karqlpytaneczka
Karql:)
21:38Morrothteraz juz wszystko jasne
conelbrak... lec
java:)
Karqlheh fajno
Karql:)
Morrothjedziesz dalej
Karqldobra teraz przejdziemy do alternacji |
Karqlczyli dopasowanie jednego z wielu pod wyrazen
Karqlwczesniejszy przyklad /[Kk]ot/
Karqlmozemy zapisac jako
21:39Karql/Kot|kot/
21:39Karqla nawet /(K|k)ot/
Karqlwiec po co tego uzywac
Karqlklasa dopasowywuje DOKLADNIE jeden znak
Karqlznak | moze dopasowac kolejne wyrazenia wyrazy etc
Karqlteraz np
21:40Karqlchcemy zrobic podobny przyklad jak z kowalskimi
Karqltylko jeszcze bedzie oprocz kowalaksi panstwo maslowscy tez Maslowski maslowski Maslowska maslowska
Karqlznakiem | mozemy to zapisac tak
21:40Karql/Kowalska|kowalska|Kowalski|kowalski|Maslowski|maslowski|Maslowska|maslowska/
21:40Karqlale troche dlugo
21:41Karqljak pisalem mozna to laczyc miedzy soba
Karqlwiec polaczymy
21:41Karql/[Kk]owalsk[ai]|[Mm]aslowsk[ia]/
21:41Karqlmozna jeszcze prosciej ale o tym pozniej przy omawianiu meta znaku ?
Karqluzylem wczesniej nawiasow dokladne ich dizalanie omowie pozniej narazie nam beda sluzyc do grupowania tekstu
21:42Karqljakies pytania z tego
Karql?
coneltez nie
nooganawiasy sie nazywa cons?
Morrothjuz chcialem spytac o te nawiasy
Morrothale poczekam
Karqlnooga: wiesz ze nie wiem:)
Karqlnie znam angielskich nazw metaznakow
FreeSok :)
noogapisalem keidys engine regexpowy wwg. jakiegos dziwnego tutsa
FreeSto lecimy dalej +m
Karqlale jak bedziesz chcial to moge ci poszukac
noogai tam bylo
21:43Karqldobra widze ze to tez jest jasne:)
noogaoki, thx
mulandernooga:
mulanderkarql zdejmij
mulanderna sekundke
mulandernooga: te nawiasy potocznie nazywa sie grouping parantheses
Karqlmulander: thx:)
mulanderi tycza one nawiasow grupujacych jezeli masz na mysli nawiasy ( )
Karqljak zawsze pomocny
Karqldobra moge dalej
Karql?
mulanderjezeli mowisz o [ ] to potocznie klasy.
mulandertak
noogahm
21:44Karqlteraz przejdziemy do granicy slow
Karqlw pierwszym przykladzie z /kot/
Karqlbylo ze moze on pasowac np do maskotka
Karqlmowilem juz ze wyrazenia nie znaja slow
Karqlale my mamy czesto taka potrzebe zeby znalezc tylko okreslone wyraze
Karqlwyrazy*
Karqldo tego przychodzi nam granica slowa
Karql\< i \< w perlu jest to inaczej
Karqlale roznice miedzy perlem itp podam na koncu
21:45Karqlhttp://wyklady.vexillium.org/karql/ex_text.txt
Karqlsciagnijcie to
Karqljesli bysmy zrobili
21:45Karqlegrep 'kot' ex_text.txt
21:45Karqlto wypisze nam
Karqljulka ma maskotke
Karqla kot zjadl ale:)
Karqla my chcemy tylko ten co kot zjadl ale
Karqlwiec zastosujemy granice slow i wyrazenie bedzie wygladalo tak
21:46Karqlegrep '\<kot\>' ex_text.txt
21:46Karqlz tego pytan nie robie bo to oczywiste
Karqldobra
Karqlteraz przejdziemy
Karqldo elementow opcjonalnych
Karqlczyli ?
21:47Karqlnajprosciej na przykladach
21:47Karql/kota?/
21:47Karqlpasuje jesli w ciagu wystepuja litery k o t po ktorych moze ale nie musi wystapic litera a
Karqlznak ? zawsze odnosi sie do jednego elementu po lewej stornie
Karqlczyli tutaj do t juz sie nie odnosi
21:48Karqldobra wezmy teraz jakies porzyteczniejsze jego wykorzystanie
Karqlmamy za zadanie wypisac wiersze w ktorych wystepuja kowal kowalski owalny
Karqlmozemy to zrobic znakiem |
Karql/kowal|kowalski|owalny/
Karqlale to takie nie fachowe i dlugie
Karqlprzyjzyjmy sie tym wyraza
21:49Karql- na poczatku wystepuje litera k ale nie musi byc
Karql- poznije czlon wszystkich owal
Karql- a pozniej koncowka albo ski albo ny
Karqlwiec zrobimy takie wyrazenie
21:49Karql/k?owal(ski|ny)?/
21:49Karqljasne wszystko
javatak
defc0ntak :)
smutnytak
21:50DyzioTak.
coneltak
Morrothtam mialo byc < i >
ZoZoltak ;]
Karqle to za dobrze mi to idzie
Karqljak nie ma pytan
Karql:)
javaehh
Karqlto lecimy
Karqlszkoda czasu
javapojetna widwonia
Morrothjazda
Karqlno pojeta widownia tez
Karql:)
Karqlo teraz cos fajniejszego
Karqlbez czego wyrazenia nie mialy by sensu
Karqlmianowicie powtorzenia * i +
21:51Karql* zero lub wiecej powtarzajacych sie elementow
Karql+ jeden lub wiecej powrarzajacych sie elementow
Karqlmamy np
Karqlwyszukac naglowki na stonie html
Karqljak wiadomo naglowki to
Karql<Hliczba>
Karqlmoga byc spacje miedzy nimi
Karqlnp <H1> <H 2>
21:52Karqlnie bedziemy wiec robic
Karql<H ? ? ? ? ? ? ?1>
Karqlbo to by bylo bez sensu tutaj uzyjemy powtorzen
Karqlzeby bylo elastyczne do wyrazenia uzyjemy * i klase znakow
21:52Karql/<H *[1-6]>/
21:52Karqlczyli pasuje jesli w wierszu
21:53Karqlwystepuje < pozniej litera H pozniej dowolna liczba spacji moze byc zero pozniej cyfra 1 lub 2 lub 3 etc i >
Karqlteraz wykrozystanie +
Karqlwezmy tez jakis tag html
Karqlhmm np <FONT SIZE=12>
Karqltutaj tak samo moga byc odstepy
21:54Karql<FONT SIZE=10> <FONT SIZE = 5 >
21:54Karqlale miedzy FONT a SIZE nie moze nie byc odstepu
Karqlmogli bysmy to gwiazdka zrobic poprzez
21:54Karql/FONT *SIZE/ (tam sa dwie spacje przed gwiazdka)
21:54Karqlale to brzydko wyglada i przedewszystkim jest nie czytgelne
21:55Karqlzrobimy to z plusem /<FONT +SIZE *= *[0-9]+ *>/
Karqlspacja+ miedzy font i size bo tam nie moze nei byc psacji * przy rownasie i na koncu bo tam moga lub nie musza
Karqli + po klasie [0-9]
Karqlbo nie moze nie byc liczby
Karqlpowotrzenia jak i ? moga odnosic sie do klasy
Karqlnaiwasow itp
21:56Karqlnp /Ala ma kota( i psa)?/
Karqlczyli ala ma kota
Karqli ale moze miec psa choc nie koniecznie
noogabo z+ to tak naprawde syntactic shugar dla zz*, engine regexpowy zamienia sobie z+ na zz* podczas parsowania
Karqldobra jasne tutaj wszystko
nooga...chyba
Morrothjak sloneczko
smutnyno tez troche sie zamotalem
Karqlnooga: ale lepiej pisac z plusami:)
21:57noogawiadomo
Karqlsmutny: czego nie rozumeisz
Karql?
noogapo to to jest
navkuuupaaa
noogaza duzo sie wtracam :/
Karqlnooga: spox
Karqlpisz
Karql:)
noogawyglada jakbym mial jakis komplex :D
smutnyKarql, juz wszystko musialem jeszcze raz przeczytac
Karqlspox
Karqldobra lecimy dalej moi mili
Karql:)
Karqlbez skojarzen:)
Morrothheh
Karqlteraz przejdziemy do troszke dokladnieszjych powtorzen
21:58Karqlczyli zakresu dopasowan
Karql{min,max}
Karqluzywamy tak samo jak ? lub + lub *
Karqlale mozemy podac dokladne zakresy
Karqlnp
21:58Karql/ha(ha){2,5}/
21:58Karqlktos ma rozny smiech moze miec tutaj hahaha lub nawet hahahahahaha
21:59Karqlmozemy tutaj uzywac mimimalna liczbe dopasowan
Karqlczasem sie przydaje
21:59Karql/(cos){min,}/
21:59Karqlten przecinek musi tam byc
Karqlmozemy rowniez podac dokladna
21:59Karql/(cos){dokladna}/
21:59Karqlto jest chyba jasne
Karqlbo tutaj nei ma nic skomplikowanego
Karql:)
22:00Karqldobra
Karqlprzejdziemy teraz do odwolan wstecznych
Karqlszczerze powiedziawszy
Karqlrzadko sie ich uzywa
Karqlw wyszukiwaniu tekstu zas czesto sa w uzyciu
Karqlprzy zamienianiu
Karql(bedzie w przykladach)
Karqlna czym polega odwolanie
Karqljak juz pisalem nawiasy maja jeszcze jedna funkcje
Karqlgurpuja
22:01Karqli mozemy sie do niech odwolac poprzez /1
Karqlnp
22:01Karql/(ala) \1/
22:01Karqlw miejsce \1 podstawi sie to co jest w nawiasie
Karqlmozemy oczywiscie uzywac kilu nawiasow
Karqli wtedy beda kolejne numery \1 \2 \3 etc
22:02Karqlpary nawiasow numerowane sa odlewej w kolejnosci otwarcia
Karqlmulander mowie zebym powiedzial ze to z angielskiego backtracking:)
Karqlthc
Karqlthx*
Karqlzrobmimy
22:03Karqlz tym jeden sensowny przyklad jaki przychodzi mi do glowy przy wyszukiwaniu
Karqlnp piszemy jakis tekst obramiamy go duzo razy
Karqlmoga nam sie zdarzyc zdublowane slowa
Karqljak sprawdzic czy takie sa
Karqlposluzymy sie tekstem ex_text.txt
Karqlktory wczesniej sciagnelismy
Karqlzrobimy takie wyrazenie
22:03Karql/\<(.+)\> +\<\1\>/
22:03Karqlodpalmy
22:04Karqlegrep '\<(.+)\> +\<\1\>' ex_text.txt
22:04Karql\< i \>
Karqlgranica slow
Karql() naiwas grupujacy
Karql.+ dowolny ciag w nawiasie
Karqlpozniej po pierwszej granicy dowolna liczba spacji
Karqli pozniej czy wyraz z tego nawiasu
Karqlsie powotrzyl
22:05Karql
karql@noname:~/wyklady$ egrep '\<(.+)\> +\<\1\>' ex_text.txt
22:05Karqltutaj dwa slowa slowa sie dubluja
Karqlczyli znalazlo nam
Karqldublujace slowa
Karqlto jest akurat nie doskonale
Karqlbo egrep sprawdza linie po lini
Karqlczyli jakby dublujacy byl w nowej
Karqlto juz by nie znalazlo
22:06Karqlale zeby napisac progos co to dobrze sprawi trzeba by bylo troszke wiecej sie pomeczyc a my mamy wprowadzenie
Karqlwiec nad tym sie nie bedziemy rozczulac
Karqldobra
Morrothz tym thc to lach
Karqli jak jasne
Karql?
Karqltak:)
Morrothdla mnie tak
smutnymi tu
Karqlfajnie:)
java:)
22:07Karqlsmutny: jasne
Karql?
smutnyjasne Karql
Karqldobra to lecimy:)
Karqlteraz zajmiemy sie unikeim
chochlikpamiętasz mnie jescze ? :P
Karqlchochlik: +m jest
chochlikfak sry nie te okno ;/
Karqltutaj http://wyklady.vexillium.org/karql/ex_text.txt
Karqldla tych co sie pogubili
22:08Karqli nie moga znalezc tego pliku
Karql:)
Karqllux
Karqljedziemy z tym unikiem
Karqljak pisalem mamy meta znaki i znaki
Karqlale co jesli chcemy w wyrazeniu
Karqlzrobic zeby meta znaki byly jako zwykly tekst
Karqlmusimy od nich ucieknac zeby staly sie zwykklym tekstem
Karqlnp chcemy zeby
22:09Karqlznalazlo wiersze gdzie wystepuje (kot)
Karqlnawiasy NIE grupuja
Karqlczyli zrobimy /\(kot\)/
Karqltak samo mozemy z KAZDYM meta znakiem robic
Karql\? \* \[ \\
Karqletc
Karqlto jest prosciutkie
22:10Karqldobra pokortce omowilem meta znaki
Karqlteraz bonus dla was:)
smutnydalej!
LySy:>
Morroth:)
Karqlhttp://wyklady.vexillium.org/karql/metaznaki.txt
Karqlzrobilem
Karqlwam taka mala tabelke
Morrothprzyda sie
Karqlzebyscie nie musieli gonic po calych logach co jest co
Karql:)
smutnybosko ;]
KarqlMorroth: wiem ze sie przyda
Karql:)
Karqldobra teraz przejdzmy do praktyki
22:11Karqljeszcze dodam o dwoch opcjach egrepa
Karqltka jak pisalem o wielkosci znakow
Karqlchcemy sprawdzi wszystkie wystapienia kowlaskiego nie wazne z jakiej litery
Karqlto mozemy zrobic /[Kk][Oo][Ww][Aa][Ll][Ss][Kk][Ii]/
22:12Karqlale jak to wyglada
Karqldo tego mamy opcje
Karql-i w egrpeie
22:12Karql
egrep -i 'kowalski'
22:12Karql-i dziala tak ze wielkosc liter nie ma znaczenia
Karqldurga opcja ktora sie przydaje kest -v
Karqlczyli negacja
Karqlwypisz wszystkie wozrce
Karqlsory
Karqlwypisz wszystkie wiersze*
Karqlktore nie pasuja do wyrazenia
22:13Karqltak jak to DJ_cool_ wczoraj skubaniec pokazywal killowanie gdzie nie bylo jego grep -v djcool
KarqlDobra podstawy mamy za soba
KarqlPamietajmy o jednej rzeczy
KarqlAlbo dwoch mniejsza z tym
22:14KarqlW wyrazeniach regularnych wazne jest zrobic takie wyrazenei zeby pasowalo do tego co chcemy
KarqlI NIE pasowalo do tego czego nie chcemy
Karqlw praktyce obie sa tak samo wazne
KarqlMusimy pamietac rownie ze wyrazenia regularne jak jezyk moga sie roznic w zaleznosci od implemetnacji
Karqltak jak np w jezyku polski w roznych regionach sa jakies dialekty ipt
22:15KarqlJak wiaodme najlepiej cwiczyc na przykladach
KarqlWiec teraz po cwiczymy
KarqlTeraz zadanie dla was
Karqlhttp://wyklady.vexillium.org/karql/godziny.txt
Karqltutaj macie tekst
Karqlmusimy napisac wyrazenie
Karqlco sprawdzi godziny w formacie 24h
Karqlz dopuszczeniem 0 na poczatku
Karqlnp 09:59
Karqletc
22:16javaegrep '([0-9]){2}\:([0-9]){2}' godziny.txt
Karqlnie zrobimy /[0-2][0-9]:[0-5][0-9]/
Karqlwlasnei o tym pisze
Karqla pozatym jest +,
javasry
Karql+m
javamyuslem ze zadanie
Karqlnie zrobimy tak
Karqlbo popatrz u ciebie moze byc 99:99
Karqlnie zrobimy tak jak ja podalem
Karqlbo moze byc 29:10
Karqlnp
22:17Karqla takiej godziny nie ma
Karqldobra
Karqlpiszcie wyrazeniado mnie na priv
Karqlja sprawdze i powiem 3 dobrze
Karqlz tego pliku powinno wrocic 6 wierszy
Karqldo 20 po macie czas
Karqlja ide sie wody napic
Karql:)
siano:)
22:18Karqlnikt sie nie polapie
Karqlna to?:)
22:19zimziew
defc0n;p
Karqldostaje jakies ale nie prawidlowe do konca
Karql:)
22:20Karqlz pliku ma wam 6 wyswietlic
Karqlnie ma godziny np 29:10
Karqldobra 20 po juz jest
Karqlpokazac rozwiazanie
Karqlczy ktos jeszcze proboje
Karql?
smutnydajk jeszcze pare minut [; fajna zabawa [;
b3xpróbuje* ;-)
Morrothzmeczony jestem :)
22:21java25
Karqldobra
javado
Karqldo 25
Karqlpodopowiem wam
Karqlze musi byc przynajmneij jeden ? i jedna |
22:22Karqli pamietajcie o ^ na poczatku
Karql:)
Karqlbo wam moga glupoty powychodzic
22:23damianmystKarql, jakis homework zarzucisz? :)
Karqltak
Karqlzrobie zadanka ale dzisiaj chyba nie zdarze
Karql:)
damianmystmhm
22:24damianmystdobra Karql, ja lece. Wyklad miodzio ;D
Karqljeszcze nie koniec
Karql:)
22:25Staszek-v to bylo zaprzeczenie tak?
Karqlnegacja
Karqltak
DJ_cool_tak
22:27sianojak z tym przykladem ?
sianozrobil ktos ?:p
Karqlno prawie im wyszlo
Karql:)
22:28sianoto ja rzuce
java:)
Karqlsiano: twoj nie do konca
Karql:)
StaszekJuz prawue ;]
sianono jak to ?:p
Karql- raz u ciebie nie ma godziny np 19
sianoaa
Karqlbo masz tylko do 14
sianowidze
Karqla dwa nie ma czegos takiego jak [00-59]
22:29Karqltylko musisz [0-5][0-9]
Karql:)
Karqldobra rozciagnelo sie to troszke
Karql:)
Karqlzrobimy to wspolnie
Karqlmamy zalozenie
Karqlzeby byly 24h
Karqltak
22:30Karqlmoze wystepowac 0 lub nie musi
Karqlczyli moze byc godzina 09 lub 9
Karqldla godziny 20stej etc
Karqlmoze byc mask 23
Karqlwiec jak pisalem dla godzin nie moze byc [0-2][0-9]
Karqlbo bedzie mogla byc godzina 29
Karqlwiec rozbijemy to najpierw na 3 czesci
22:31Karql/^(0?[0-9]|1[0-9]|2[0-3]):[0-5][0-9]/
22:31Karqlpierwsz tutaj jest dla godzin 0-9
Karqldrgua 10-19
Karqli trzecia 20-23
Karqlzeby to uproscic
Karqlmozemy dwie pierwsze polaczyc
22:31Karql/^([0-1]?[0-9]|2[0-3]):[0-5][0-9]/
22:31Karqlbo dla godzin 0-9 i 10-19
Karqlsa takie same zalozenia
22:32Karqlpodam jeszcze jeden sposob
22:32Karql/^([0-2]?[0-3]|[0-1]?[0-9]):[0-5][0-9]/
22:32Karqljak sie dluzej nad nim zastanowicie
Karqlto tez zobaczycie ze jest dobry
Karqlale ja bym uzywal przed ostatniego
Karqlponiewaz raz krotszy
Karqldwa czytelniejszy:)
Karqlpytanka
sianojestem glupi :)
smutnyhmm czemu na to nie wpadlem ? ;]
sianochoc to nie pytanie
22:33Karqlzaraz przejdziemy do perla
Morrothterasz rozumiem
Karqli dwa przyklady wam pokaze
Karql:)
Karqlale zastanowimy sie wspolnie
Karqlnad regexpem
Karql:)
smutnydzieki!
Karqldobra to jedziemy szkoda czasu
Karql:)
KarqlPrzechodzimy do perla
22:34Karqljak juz pisalem wyrazenia moga sie minimalnie roznic
Karqlnie inaczej jest meidzy perlem i egrepem
KarqlNie bedzie tutaj chodzilo o znajomosc perla
Karqlbo wiekszosc z was zapewne nie zna ale wydaje mi sie ze po tym wykladzie wam sie spodoba
Karqljak sie spodoba to odsylam do logow mulandera gdzie fajnie opisal podstawy
22:35KarqlDobra
Karqlteraz dam linka do roznic miedzy perlem a egrepem
Karqlhttp://wyklady.vexillium.org/karql/perl.txt
Karqlzobaczcie
Karqlw perlu
Karqlfunkcjonuja skorty
Karqljak np \d zastpeuje [0-9]
Karqlw tym linku macie dokladnie co i jak
Karqldalej
Karqlw perlu
22:36Karqljesli chcemy ominac roznice w wielkosci liter robimy na koncu wyrazenie flage i
Karqlnp if ($zmienna =~ /wyrazenie/i)
Karqljesli chcemy znegowac to robimy !~
Karqlzamiast =~
22:37Karqlto co jest w nawiasach zostaje przekazane do zmiennych $1 $2 etc
Karqltak jak tam jest pokazane
Karql:)
KarqlDobra napiszemy teraz programik
Karqlktory przetowrzy nam liste zadan z perla i zrobi ranking
Karqllink do zadan: http://wyklady.vexillium.org/perl_zad.txt
Karqltutaj macie link do zadanek
22:38Karqlranking jest w takiej postaci
Karql1. [2570 pkt] Karql ( 1-26 )
Karql2. [2395 pkt] Kamil ( 1-26 )
Karql3. [2105 pkt] nooga ( 1-3 5-12 14-26 )
Karqlteraz pomozcie mi zrobic wyrazenie
Karqlktore do zmiennej $1 zapisze miejsce $2 pkt $3 nick a $4 zrobione zadania
22:39Karqlto juz bedzie troszke trudniejsze
Karql:)
mulanderhmm zaraz dam linka :P
Karql
Karql:)
DJ_cool_tak
Karqldobra to jak myslimy
Karqlnad tym
Karqlczy podam na tacy
Karqli omowie
Karql?
22:40mulandermyslimy
mulander:P
java:)
hawk;]
javamyslimy
Karqlspox
smutnymoge pomyslec spiac ;]
Karqlto bez +m
javakazdy osobno
javaa poziej burza mozgow
java:)
Karqlto co dac wam czas?
Karqlmysle ze nei
javatak
Karqlwalniemy na ogole
Karql:)
Karqlpierwsze chcemy miejsce tak
Karqlwiec zaczynamy od poczatku
22:41Karql/^(\d+\.)
22:41Karql\d to jest [0-9]
Karql\.
Morrothdobra ja juz zwijam szkola jutro i takie tam
Karqlunik od kropki czyli jest tutaj
Morrothpozdro wszystkim
Karqlzwykla kropka
KarqlMorroth: pa
mulanderhttp://kewlnet.int.pl/~mulander/mulkurs.pl
Karqlmulander: ja im dam linka pozniej
Karqlnie psuj zabawy
Karql:)
mulander:P
mulandersorki :>
Karqlteraz musimy pobrac ilosc pkt
mulanderudawajcie ze nie dalem linka :>
smutnymulander You don't have permission to access [;
22:42Karql/^(\d+?\.)\s\[\s*(\d+?)\spkt\]
22:42Karqlpo kropce wystpuje jedna spacja czyli znak bialy \s
Karqlpozniej unikamy kalsy znakow
22:43Karqlw nawiasach kwadratowych moze wsystapic spacja badz kilka leczn nei musi
smutnyKarql dzieki za rozjasnienie regexp, fajnie ci poszlo, jutro czytam loga, wszystkim dobrego zycze [snu] , narqa!
Karqlpozdro
mulanderpoprawione uprawnienia na pliku
Karqlpozniej bierzemy punkty do zmiennej numer dwa pozniej jest \s bialy znak pkt i unik klasy znakow
Karqlmulander: ;/
Karql:)
Karqlteraz nick
22:43Karql^(\d+?\.)\s\[\s*(\d+?)\spkt\]\s(\w+?)^(\d+?\.)\s\[\s*(\d+?)\spkt\]\s(\w+?)
22:43Karqlproste
22:44Karqlspacja \s i \w czyli slowa
Karql+? ma specjalne znaczenie w perlu
Karqlnon greedy
Karqlczyli ze nie jest chciwy
Karqljesli by tego nie bylo to lapalby ile moze
Karqli zostaly nam punkty
22:44Karql^(\d+?\.)\s\[\s*(\d+?)\spkt\]\s(\w+?)\s+\(\s([-\d ]+?)\s+\)
22:44Karqlbo nicku jest dowolna liczba znakow bialych \s+
22:45Karqlpozniej nawias czyli robimy \(
Karqlpozniej do zadan jedna spacja \s
Karqlzadanka
Karqlmoga miec cyfre spacje i myslnik wiec zrobilem klase znakow
Karql[-\d ]
mulanderhttp://kewlnet.int.pl/~mulander/mulkurs.txt ( poprawione :P )
Karqli po tym dowolna liczba znakow bialych \d
Karql\s*
22:46Karqli zamykamy nawias \)
Karqlwiec to jest cale wyrazenie
Karql:)
Karqlteraz programik
java*<@Karql> i zostaly nam punkty - zrobione zadanie a nie punkty
Karqltak
Karqlsory
Karql:)
Karqlhttp://wyklady.vexillium.org/karql/perl_zad.pl
Karqlzebyscie teraz nie musieli instalowac modulow
Karqldam output
Karqlprogramu
22:47Karqlhttp://wyklady.vexillium.org/karql/perl_zad_output.txt
Karqlprosze
Karql:)
Karqlzaznajomcie sie tak w miare:)
mulanderyy to nie jest przerobiony moj skrypt ? :P
Karqlnie:)
Karqlty robiles kiedys cos takieg
Karqla ja zrobilem swoj podobny
Karql:)
22:48Karqlbo wyklady perl to parsowanie tego mi sie najbardzije rzucilo na mysl
Karql:)
javanie robcie offtopa
Karqljava: zobaczyles program
Karql?
javatak
Karqlmozemy jechac dalej
Karql?
javamysle ze tak
22:49Karqljeszcze podam jeden przykladowy program i konczymy
Karql:)
javanie zostalem sam
java?
Karqlnie wiem
Karqlchociaz dla jednej osoby warto
Karql:)
mulander:P
smutnyjescze zyje
smutny;]
Karqlspox
Karql:)
hawkja tez
Karqlto ostatni progos
javamnie interesuje wiec dalej
Karqlhttp://wyklady.vexillium.org/karql/google.txt
Karqlsciagnijcie to
22:50Karqljest to strona z rezultatami google
Karqlnie zrobimy dynamicznego skryptu
Karqlbo do tego trzba bardziej zaawansowanego modulu
Karqla nie mamy czasu sie tutaj bawic w instalowanie itp
Karqla chodzi glownei o same wyrazenia regularne
javaok
Karqldobra polecimy tak
22:51Karqldam skrypt
Karqli bede omawial
mulander:P
java:)
smutnyoks sybko ;]
Karqlhttp://wyklady.vexillium.org/karql/perl_google.pl
Karqlon jest okomentowany
Karqlale jeszcze sam dopowiem
22:51Karqlmy $google = join "\n", <>;
22:51Karqlwczyta nam do zmiennej
mulanderkarql
Karqlto co podamy jako argument przy odpalaniu
mulanderjaka wtopa
mulanderchodz na priv
mulanderbo niechce ciebie publicznie kompromitowac :P
Karqlspox dziala to
Karql:)
22:52Karql$google =~ s/\n//g;
22:52Karqlusuniemy
Karqlbiale znaki
Karqlnei biale
Karqltylko znaki nowego wiersza
Karqlprzeraszam was
22:52Karql#!/usr/bin/perl
22:52Karqlmusi byc pierwszy
Karqlprzyzwyczajenie z Gynvaela programow w C
22:53Karqlze komentowal u gory:)
java:)
Karqlale nevermind
Karql:)
Karqlusunelismy tam znaki nowego wiersza
Karqlzeby pracowac na jedenej lini
Karqlflaga /g
Karqloznacza globalne
Karqlczyli wszystkie
22:53Karql$google =~ s/<B>//ig;
Karql$google =~ s/<\/B>//ig;
22:53Karqlw tytulach wystepuja takig html pogrubienia
Karqlwiec je tez usuniemy
Karqli teraz petla
22:54Karqlpuszczamy ja dopuki warunek jest prawdziwy
Karqlmusimy zauwazyc ze linki sa w takiej postaci
22:54Karql<a class=l href="link">tytul</a>
22:54Karqlaha
22:55Karqlte dwa regexpy to tak dal pokazaania ze otwarte i zamkniete
Karqlmozemy to zrobic jednym
22:55Karql$google =~ s/<B>//ig;
22:55Karqlsory
22:55Karql$google =~ s/<\/?B>//ig;
22:55Karqltak
Karqldobra
Karqljak zobaczymy ze tam sa takie linki
Karqlto juz latwo z nich wyciagnac
Karqlduzo latwiej niz z tych zadan
Karqlczyli petla dopuki wystepuje nam cos takiego
22:56Karqlwhile ($google =~ /<a class=l href="(.+?)">(.+?)<\/a>/)
22:56Karqlto mamy w zmiennych $1 i $2
Karqlkolejno linka i tytul strony
Karqlto teraz je tylko printujemy
Karqljako ze dzialamy na jednej lini
Karqlto jesli bysmy to tak zostawili to byla by petla nieskonczona
Karql:)
Karqlwiec musimy usunac to co juz uzylismy
22:56Karql$google =~ s/<a class=l href=".+?">.+?<\/a>//;
22:57Karqljak widzicie tutaj nie ma /g
Karqljesli by bylo
Karqlto wtedy petla wykonala by TYLKO RAZ
Karqlbo nie bylo by juz linkow
mulanderee
mulandernie lepiej odrazu w while
mulanderuzywac s///
mulander?
Karqlw while jest
22:58javakarql szczerze to nie wiem do czego dazysz, ale poczekam
Karqljava: juz skonczylem
Karql:)
javaaha
java:)
javai co dalej
mulanderKarql: w while wyciagasz zmienne
java:)
Karqlmulander: od usuwania linkow jest w while a tamte przed zeby sie tylko raz wykonaly
defc0n:]
mulandera potem masz drugiego regexpa do usuwania tego samego
mulanderto samo moglbys zrobic
mulanderjednym s/// w while
Karqlno w sumie tak
Karql:)
Karqlwiesz ze z perla jestes lepszy niz ja:)
22:59mulandernie, to ty jestes leniwy :P
mulanderale dobra offtopic :P
22:59Karqlwhile ($google =~ s/<a class=l href="(.+?)">(.+?)<\/a>//) {
22:59Karqlczyli tak mozemy w petli zrobic
Karqli pozniej po printowaniu nie dajemy juz
Karqltego s///
Karqlale to takie zagadnienia bardziej perla dotyczace
Karqla nam chodzi o regexpy
smutnyostatecznie dobranoc
23:00javano wlasnie regexpy
java:)
KarqlDobra powoli dobiegamy do konca
javanie
java:)
Karqltak tak:)
Karql2 godzinki juz
Karqlmaterial omowiony
FreeSheh
FreeSale sie wyrobiles ;>
FreeS31:01
FreeS*23:01
javahoi teraz troche praktyki i zobrazowania tego co sie "nauczylsimy"
KarqlNapisalismy dwa programiki:)
FreeSod 21:01
Karqljava: wlasnie o tym teraz
Karql:)
KarqlTak dzisiaj juz pewnie nie zdarze
Karqlale postaram sie jak najszybciej umiescic zadanka
FreeSheh
23:01Karqltak jak to ma miejsce z perlem asm i c
FreeSKarql: spoko wyklad
javaciii
Karqlwyslecie do mnie ja skomentuje ocenie itp:)
javaehhh
KarqlTeraz na koniec moj mail: karql.pl@gmail.com
FreeSbedziesz cos jeszcze robil to /prv to me ;> z checia poczytam
Karqljesli macie jakies pytania
Karqlchcecie sie cos dowiedziec to zapraszam
javadaj jakiedos dluzszego regexpa i omowimy tu
java:)
mulanderKarql:
Karqltak samo przesiaduje tutaj na kanale itp
mulanderdaj mu toi
Karqlmulander: wiem
mulanderco ci dalem na psi
mulander;P
Karqlwiec odpowiem
mulanderi omow ^^
23:02mulanderalbo nie
mulanderniech java omowi ^^
Karqlna koniec jeszcze jako ciekawostke
Karqlwyrazenie co muniek dal:)
javahardcore
java:)
java?
mulandernie :P
Karqlhttp://wyklady.vexillium.org/karql/regex_ex.txt
Karqlwyrazenie do sprawdzania daty
Karql:)
mulandere tu mogles wkleic :P
Karqlnie zmiescilo by sie
Karql:)
java)
KarqlI tym oto optymistycznym akcentem konczymy dzisiejszy wyklad
23:03DJ_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-
KarqlMam nadzieje ze choc troche sie kumus przyda w poznaniu wyrazen regularnych
java:)
Karqljava nie zmiescil sie
Karql:)
mulanderjava: niema calego
sianodobry byl
mulander:P
javazmiescil
sianotrzeba przyznac :)
KarqlDziekuje za uwage jak macie cos to walcie smialo. Bylo milo
KarqlPozdrawiam