Prethodna tema :: Sljedeća tema |
Autor/ica |
Poruka |
thinkpink223 Forumaš(ica)
Pridružen/a: 25. 09. 2011. (09:24:57) Postovi: (12)16
Spol:
|
Postano: 19:21 sub, 22. 10. 2011 Naslov: reg. izraz |
|
|
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)
[b] \+(\d{1,3})-(\d{1,3})-(\d+-?\d{2,}|\d{2,}-?\d+)\b[/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
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
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 20:30 sub, 22. 10. 2011 Naslov: |
|
|
Tehnicka zackuljica (koju ne morate znati, tj. rjesenje iz skripte bi se prihvatilo kao tocno). Ispravnije bi bilo:
[tt]\+(\d{1,3})-(\d{1,3})-(\d{2,}-?\d+|\d+-?\d{2,})\b[/tt] (zamijenjeni su prvi i drugi dio u [tt](...|...)[/tt])
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 [tt](...|...)[/tt], tj. na textu "321-1" pokusa primijeniti [tt]\d+-?\d{2,}[/tt]. Kad to ne bi uspjelo, onda bi probao [tt]\d{2,}-?\d+[/tt]. No, on to uspije:
[tt]\d+[/tt] = "3",
[tt]-?[/tt] = "" (jedostavno ne nadje crticu),
[tt]\d{2,}[/tt] = "21".
Cijeli komad "321-1" ne uspije uhvatiti zbog onog [tt]{2,}[/tt] kojem je "1" jednostavno prekratko, no uspije manji, pa onda niti ne pokusa drugi dio podizraza [tt](...|...)[/tt] i zato prividno nema "pohlepe" na koju smo navikli.
Ispravit cu u skripti; hvala.
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.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
quark Forumaš(ica)
Pridružen/a: 22. 10. 2011. (16:47:39) Postovi: (DA)16
Spol:
|
|
[Vrh] |
|
thinkpink223 Forumaš(ica)
Pridružen/a: 25. 09. 2011. (09:24:57) Postovi: (12)16
Spol:
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 2:05 ned, 23. 10. 2011 Naslov: |
|
|
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]Za bas nadobudne (PerlRE):
[tt][color=red](?i)[/color]\b([a-z])([a-z])([a-z])\2\1\b[/tt]
a ako bas zelite da prvo slovo bude veliko, a ostala kakva god:
[tt]\b([A-Z])[color=red](?i)[/color]([a-z])([a-z])\2\1\b[/tt]
no to vec zalazi duboko u zonu crne magije i nikako ne spada u stvari na koje bi uopce trebalo pomisliti tijekom normalne upotrebe (ukljucivo i rjesavanje kolokvija). ;)[/spoiler]
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]: | Za bas nadobudne (PerlRE):
(?i)\b([a-z])([a-z])([a-z])\2\1\b
a ako bas zelite da prvo slovo bude veliko, a ostala kakva god:
\b([A-Z])(?i)([a-z])([a-z])\2\1\b
no to vec zalazi duboko u zonu crne magije i nikako ne spada u stvari na koje bi uopce trebalo pomisliti tijekom normalne upotrebe (ukljucivo i rjesavanje kolokvija). |
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
dalmatinčica Forumaš(ica)
Pridružen/a: 01. 10. 2011. (18:46:54) Postovi: (AC)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
dalmatinčica Forumaš(ica)
Pridružen/a: 01. 10. 2011. (18:46:54) Postovi: (AC)16
|
|
[Vrh] |
|
PermutiranoPrase Forumaš(ica)
Pridružen/a: 10. 09. 2011. (16:08:19) Postovi: (F4)16
Spol:
|
Postano: 20:21 sri, 9. 11. 2011 Naslov: |
|
|
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. :D
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. :?
Valja li ovo išta (sumnjam, grupacije su mi vjerojatno krive :D):
^([1-9]\d{9})$|^([1-9]\d{9})\s+(.+)$ (na primjeru mi radi, ali grupacije...?)
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.
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.
Valja li ovo išta (sumnjam, grupacije su mi vjerojatno krive ):
^([1-9]\d{9})$|^([1-9]\d{9})\s+(.+)$ (na primjeru mi radi, ali grupacije...?)
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
Postano: 21:16 sri, 9. 11. 2011 Naslov: |
|
|
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: [tt]^(\d{10})(\s(.*))?$[/tt]
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.
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.
_________________ U pravilu ignoriram pitanja u krivim topicima i kodove koji nisu u [code]...[/code] blokovima.
Takodjer, OBJASNITE sto vas muci! "Sto mi je krivo?", bez opisa u cemu je problem, rijetko ce zadobiti moju paznju.
|
|
[Vrh] |
|
BlameGame Forumaš(ica)
Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
BlameGame Forumaš(ica)
Pridružen/a: 14. 09. 2011. (19:17:53) Postovi: (6C)16
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
logikaus Forumaš(ica)
Pridružen/a: 12. 10. 2011. (17:55:23) Postovi: (45)16
|
|
[Vrh] |
|
mdoko Forumaš(ica)
Pridružen/a: 30. 11. 2002. (22:17:12) Postovi: (71A)16
Spol:
Lokacija: Heriot-Watt University, Edinburgh
|
|
[Vrh] |
|
mila majka Forumaš(ica)
Pridružen/a: 10. 11. 2011. (16:33:35) Postovi: (13)16
|
|
[Vrh] |
|
vsego Site Admin
Pridružen/a: 06. 10. 2002. (22:07:09) Postovi: (3560)16
Spol:
Lokacija: /sbin/init
|
|
[Vrh] |
|
anamarie Forumaš(ica)
Pridružen/a: 07. 09. 2011. (10:59:19) Postovi: (87)16
Spol:
|
|
[Vrh] |
|
|