reg. izraz
Select messages from
# through # FAQ
[/[Print]\]
Idite na 1, 2, 3, 4, 5, 6  Sljedeće  :| |:
Forum@DeGiorgi -> Programiranje 1 i 2

#1: reg. izraz Autor/ica: thinkpink223 PostPostano: 19:21 sub, 22. 10. 2011
    —
jel mi itko može objasniti zašto ovo ne funkcionira :
ovako. imam zadano da prepoznam +kod1-kod2-broj odnosno kodovi su 1-3 znamenke a broj barem 3 znamenke i najviše jedna crtica (ne smije biti na početku i na kraju broja) i sad ja unesem tj. zapravo u knjizi je tako napisano (i ja sam došla do istog rj)
\+(\d{1,3})-(\d{1,3})-(\d+-?\d{2,}|\d{2,}-?\d+)\b i ne prepozna mi broj +095-356-321-1 . prepozna mi samo do 321 kasnije ništa .. zašto ? a kad stavim -12 tj. dodam još 2 , to prepozna. vjerojatno je odg. očit -.– prosvijetlite me

#2:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 20:30 sub, 22. 10. 2011
    —
Tehnicka zackuljica (koju ne morate znati, tj. rjesenje iz skripte bi se prihvatilo kao tocno). Ispravnije bi bilo:
\+(\d{1,3})-(\d{1,3})-(\d{2,}-?\d+|\d+-?\d{2,})\b (zamijenjeni su prvi i drugi dio u (...|...))

Cinjenica je i da i ovaj prvi radi tocno (iako ne bas kako mozda zelimo), jer je i
+095-356-321
oblika koji trazimo.

Ono sto se, kod matchanja stringa "321-1" desi (a sto ne morate znati) je da regex prvo isprobava prvi dio (...|...), tj. na textu "321-1" pokusa primijeniti \d+-?\d{2,}. Kad to ne bi uspjelo, onda bi probao \d{2,}-?\d+. No, on to uspije:
\d+ = "3",
-? = "" (jedostavno ne nadje crticu),
\d{2,} = "21".
Cijeli komad "321-1" ne uspije uhvatiti zbog onog {2,} kojem je "1" jednostavno prekratko, no uspije manji, pa onda niti ne pokusa drugi dio podizraza (...|...) i zato prividno nema "pohlepe" na koju smo navikli.

Ispravit cu u skripti; hvala.

#3: Da se nadovežem.... Autor/ica: quark PostPostano: 22:43 sub, 22. 10. 2011
    —
Dakle, riječ je o regularnom izrazu koji prepoznaje palindrome od točno 5 slova. To bi bilo ovo:

\b([A-Za-z])([A-Za-z])([A-Za-z])\2\1\b


E sad, ne piše u zadatku, ali mene zanima; kako bismo napisali izraz da obuhvatimo i one palindrome koji su na početku rečenice, tj. prvo i zadnje slovo razlikuju se samo u "veličini"? Kako narediti grupaciji da bude case insensitive? Twisted Evil

#4: Re: Da se nadovežem.... Autor/ica: thinkpink223 PostPostano: 0:22 ned, 23. 10. 2011
    —
quark (napisa):
Dakle, riječ je o regularnom izrazu koji prepoznaje palindrome od točno 5 slova. To bi bilo ovo:

\b([A-Za-z])([A-Za-z])([A-Za-z])\2\1\b


E sad, ne piše u zadatku, ali mene zanima; kako bismo napisali izraz da obuhvatimo i one palindrome koji su na početku rečenice, tj. prvo i zadnje slovo razlikuju se samo u "veličini"? Kako narediti grupaciji da bude case insensitive? Twisted Evil


koristi drugi program koji ne razlikuje mala i velika slova. xD
inače i mene zanima kako bi se to riješilo

#5:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 2:05 ned, 23. 10. 2011
    —
Ako pod case-insensitive mislite na, recimo, "Abcba", onda to malo teze. Obicno cete u samom programu (npr. u CodeBlocksu) kliknuti "case insensitive" ili tako neku opciju (zapravo, ta je obicno default i treba ukljuciti ako se zeli case sensitive).

Spoiler [hidden; click to show]:

#6: 2010. Autor/ica: dalmatinčica PostPostano: 16:09 uto, 8. 11. 2011
    —
http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-1011-1.pdf
http://degiorgi.math.hr/prog1/kolokviji/p1-kolokvij-1011-1-rj.html

4. zadatak pod a) (pa naravno isto i b i c)
kod datuma i mjeseci u rješenjima
piše :
0\d
odnosno
[0-2]\d
.
šta to onda ne uključuje i 00 u oba slučaja, a piše da su 1⇐dd⇐31 tj. 1⇐mm⇐12?

#7:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 16:36 uto, 8. 11. 2011
    —
Da, greska u generatoru (naknadni ispravci su malo tezi za izvesti) pa smo dogovorno priznavali oba rjesenja.

Ovdje je raspisano kako bi se to trebalo napraviti.

#8:  Autor/ica: dalmatinčica PostPostano: 17:12 uto, 8. 11. 2011
    —
okej
samo htjedoh provjeriti

#9:  Autor/ica: PermutiranoPrase PostPostano: 20:21 sri, 9. 11. 2011
    —
Ono što mene buni su grupacije... To su izrazi u zagradama? Prva grupacija odgovara izrazu od prve otvorene zagrade pa do zatvorene koja odgovara toj otvorenoj, druga grupacija ide od prve otvorene zagrade poslije prije navedene zatvorene zagrade, ili? Što je sa zagradama unutar zagrada?

Ok, ovo je vjerojatno jako zbunjujuće izrečeno. Very Happy

Prosvijetlite me na primjeru, zadatak 3.2.16: Napišite regularni izraz koji prepoznaje sve linije u tekstu koje počinju validnim JMBAG-om (prirodni 10-znamenkasti broj) iza kojeg se mogu (ali ne moraju) nalaziti podaci o vlasniku JMBAGa-a (ako se nalaze, odvojeni su bar 1 razmakom). JMBAG izdvojite u jednu grupaciju, podatke bez početnih razmaka u drugu. Kad ne bi bilo posljednje rečenice, bilo bi mi kristalno jasno što napraviti. Confused

Valja li ovo išta (sumnjam, grupacije su mi vjerojatno krive Very Happy):
^([1-9]\d{9})$|^([1-9]\d{9})\s+(.+)$ (na primjeru mi radi, ali grupacije...?)

#10:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 21:16 sri, 9. 11. 2011
    —
Nije dobro.

1. JMBAG moze zapoceti s nulom,
2. Tebi ce JMBAG nepotrebno zavrsiti u razlicitim grupacijama, ovisno o tome ima li iza njega texta ili ne.

Ja bih to ovako rijesio: ^(\d{10})(\s(.*))?$

1. grupacija: JMBAG
2. grupacija: sve iza JMBAGa
3. grupacija: text (sve iza JMBAGa, ali bez razmaka koji to dvoje odvaja).

Dakle, traze se 1. i 3. grupacija, a 2. je tu zato jer bez nje to ne mozemo napisati.

Zasto ne isprobavas sa skriptom na web stranici kolegija? Tamo uredno ispise sto je koja gupacija, pa lako isprobas ugnijezdene zagrade i sl. bez da cekas na odgovor ovdje.

#11:  Autor/ica: BlameGame PostPostano: 1:53 čet, 10. 11. 2011
    —
Treba napisati izraz koji prepoznaje sve parne dekadske brojeve.
Da li bi to izgledalo ovako:
[1-9]+[02468]+|[2468]
I da li tu trebaju zagrade za grupacije

#12:  Autor/ica: mdokoLokacija: Heriot-Watt University, Edinburgh PostPostano: 2:27 čet, 10. 11. 2011
    —
BlameGame (napisa):
Treba napisati izraz koji prepoznaje sve parne dekadske brojeve.
Da li bi to izgledalo ovako:
[1-9]+[02468]+|[2468]

Ovaj izraz ne prepoznaje nulu Confused (niti negativne parne brojeve)

#13:  Autor/ica: BlameGame PostPostano: 2:39 čet, 10. 11. 2011
    —
Ako bi islo onim zahtjevom ispravno zapisani onda 0 sama ni ne bi mogla?
a to za minus da, samo mi je sad bitno da li je ovako ispravno

#14:  Autor/ica: mdokoLokacija: Heriot-Watt University, Edinburgh PostPostano: 3:24 čet, 10. 11. 2011
    —
BlameGame (napisa):
Ako bi islo onim zahtjevom ispravno zapisani onda 0 sama ni ne bi mogla?

Zašto? Meni se čini da je ispravan zapis broja nula upravo 0.

#15:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 4:04 čet, 10. 11. 2011
    —
Taj izraz ne bi prepoznao niti 1012. Confused

Pogledaj kako je to rijeseno u vjezbama. Parnost se svodi samo na to da izdvojis zadnju znamenku, a drugo je isto kao u rijesenim primjerima u vjezbama.

#16:  Autor/ica: logikaus PostPostano: 10:12 čet, 10. 11. 2011
    —
imam dva pitanja =)
1. mogu li umjesto [12]\d pisati [12][0-9]?

2. zasto u zadacima (npr. kod onih s datumima s proslogodisnjih kolokvija ili s vjezbi) gdje pise, npr. napisi datum u obliki dd=mm=... taj jednako, napisemo jednostavno 0 a ne kao \=
a kad pise da se dva datuma odvoje znakom ? onda izmedu dva datuma pisemo \? ? =)

#17:  Autor/ica: mdokoLokacija: Heriot-Watt University, Edinburgh PostPostano: 11:30 čet, 10. 11. 2011
    —
logikaus (napisa):
imam dva pitanja =)
mogu li umjesto [12]\d pisati [12][0-9]?

Da.

Citat:
zasto u zadacima (npr. kod onih s datumima s proslogodisnjih kolokvija ili s vjezbi) gdje pise, npr. napisi datum u obliki dd=mm=... taj jednako, napisemo jednostavno = a ne kao \=
a kad pise da se dva datuma odvoje znakom ? onda izmedu dva datuma pisemo \? ? =)

Zato što u regularnim izrazima znak '?' ima specijalno značenje - znak ili grupacija navedeni prije '?' se mogu pojaviti jednom i ne moraju. Da bi '?' tretirali kao običan znak, moramo napisati '\?'. S druge strane '=' nije specijalni znak pa nema potreba da ga specijalno tretiramo.

#18:  Autor/ica: mila majka PostPostano: 16:37 čet, 10. 11. 2011
    —
a kakvo značenje ima "!"(riječima:uskličnik)?

#19:  Autor/ica: vsegoLokacija: /sbin/init PostPostano: 16:57 čet, 10. 11. 2011
    —
Nikakvo mimo onoga koje je i Krleza koristio. Very Happy

#20:  Autor/ica: anamarie PostPostano: 18:24 čet, 10. 11. 2011
    —
Napisite regularni izraz koji:
a) prepoznaje datum u formatu dd>yyyy>mm (dd, mm i yyyy su nenegativni brojevi s tocno dvije, odnosno cetiri znamenke
(1⇐dd⇐31, 1⇐mm⇐12), a ostali znakovi se prepoznaju tocno kako su navedeni).

Moje rješenje:
(0[1-9]|[1-2][0-9]|3[01])\>\d{4}\>(0[1-9]|1[0-2])
Jeli se može i ovako?

inače njihovo rješenje ([0-2]\d|3[01])>\d{4}>(0\d|1[0-2])



Forum@DeGiorgi -> Programiranje 1 i 2


output generated using printer-friendly topic mod. Vremenska zona: GMT + 01:00.

Idite na 1, 2, 3, 4, 5, 6  Sljedeće  :| |:
Stranica 1 / 6.

Powered by phpBB © 2001,2002 phpBB Group
Theme created by Vjacheslav Trushkin