Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Regexp i izvlacenje texta

[es] :: PHP :: Regexp i izvlacenje texta

[ Pregleda: 1743 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

GMC
Selo Veselo

Član broj: 11492
Poruke: 338
31.176.207.*



Profil

icon Regexp i izvlacenje texta05.10.2011. u 12:17 - pre 152 meseci
Pozdrav svima,
Vidim da ima mali milion regexp tema ali jednostavno je situacija takva da se tesko moze iskoristiti tudje rjesenje za moj problem.
Radi se o tome da imam nekoliko zakona koje zelim obraditi za neke svoje potrebe ali je problem sto bih trebao da regularnim izrazom nekako izdvojim pomocu preg_match_all "clan" i "tekst clana"

Ako orginalni tekst izgleda npr ovako (ovo je samo primjer, prvo sto mi je palo pod ruku)

Code:

I - OPCE ODREDBE

Clan 1.

Ovim zakonom uredjuju se unutrasnji poslovi iz nadleznosti Federacije Bosne i Hercegovine (u daljem tekstu: Federacija) i nacin vrsenja tih poslova, organizacija i nadleznosti ministarstva nadleznog za unutrasnje poslove Federacije (u daljem tekstu: Ministarstvo), 
medusobni odnosi 
Ministarstva sa ministarstvima nadleznim za unutrasnje poslove kantona (u daljem tekstu: kantonalno ministarstvo), 
prava i duznosti ovlascenih sluzbenih lica i radni odnosi sluzbenika u Ministarstvu kao i druga
pitanja od znacaja za ostvarivanje funkcija Federacije u oblasti unutrasnjih poslova iz nadleznosti Federacije.

Clan 2.
Unutrasnji poslovi iz nadleznosti Federacije su:
- sprjecavanje i otkrivanje krivicnih djela medukantonalnog kriminala kao i, terorizma, neovlascene trgovine drogom i organizovanog kriminala; pronalazenje i hvatanje ucinilaca tih krivicnih djela te njihovo privodjenje nadleznim organima;
- poslovi drzavljanstva Federacije;
- osiguranje odredjenih licnosti i zgrada Federacije;
- zastita ljudskih prava i gradanskih sloboda u oblasti unutrasnjih poslova.



Clan 3.

Pod medjukantonalnim kriminalom, u smislu ovog zakona, smatraju se sva krivicna djela kod kojih su okrivljeni ili ostecena lica sa prebivalistem na teritoriji razlicitih kantona, 
kao i djela izvrsena na teritoriji razlicitih kantona ili zapoceta na teritoriji jednog a zavrsena na teritoriji drugog kantona, ili ako su stetne posljedice nastupile na teritoriji vise kantona.

Clan 4.
Pod organiziranim kriminalom, u smislu ovog zakona, smatra se udruzivanje ili koriscenje organizacije radi vrsenja krivicnih 
djela (zavjere, bande, grupe i sl.), kao i sva krivicna djela proizisla iz plana tih udruzenja ili organizacija.


E sad vidi se da razmaci izmedju "clan x." i samog teksta nisu svugdje isti (negdje ima negdje ne). Zatim, duzina teksta se razlikuje od clana do clana i na kraju broj clanova varira.

Da li je ovo uopste moguce rijesiti na nacin na koji ja zelim? Ja uspijem napisati izraz da izoluje Clan i dio teksta ali nikako ne uspijevam da ga ogranicim "da prestane citati" kad naleti na slijedeci clan.

Hvala unaprijed!
Ajd Zdravo
 
Odgovor na temu

Vladica Savić
Software Developer
Toronto, Canada

Član broj: 26699
Poruke: 654



+5 Profil

icon Re: Regexp i izvlacenje texta05.10.2011. u 12:35 - pre 152 meseci
Here we go :)
Code:
((?<CLAN>Clan\s\d*\.)(?:\s)(?<TEKST>.*?)(?:\r\n\r\n|\r\r|\Z))

 
Odgovor na temu

GMC
Selo Veselo

Član broj: 11492
Poruke: 338
31.176.207.*



Profil

icon Re: Regexp i izvlacenje texta05.10.2011. u 18:09 - pre 152 meseci
Prvo, hvala puno na odgovoru ali upravo sam shvatio da sam u prvom postu napravio gresku kada sam dao primjer teksta zakona.
On u stvari u txt fileu izgleda onako kako sam zaljepio ali tek sada vidim da kad taj file ucitam u varijablu u PHP-u dobijem u stvari ovo:

Code:

I - OPCE ODREDBE Clan 1. Ovim zakonom uredjuju se unutrasnji poslovi iz nadleznosti Federacije Bosne i Hercegovine (u daljem tekstu: Federacija) i nacin vrsenja tih poslova, organizacija i nadleznosti ministarstva 
nadleznog za unutrasnje poslove Federacije (u daljem tekstu: Ministarstvo), medusobni odnosi Ministarstva sa ministarstvima nadleznim za unutrasnje poslove kantona (u daljem tekstu: kantonalno ministarstvo), 
prava i duznosti ovlascenih sluzbenih lica i radni odnosi sluzbenika u Ministarstvu kao i druga pitanja od znacaja za ostvarivanje funkcija Federacije u oblasti unutrasnjih poslova iz nadleznosti Federacije. Clan 2. Unutrasnji poslovi
 iz nadleznosti Federacije su: - sprjecavanje i otkrivanje krivicnih djela medukantonalnog kriminala kao i, terorizma, neovlascene trgovine drogom i organizovanog kriminala; pronalazenje i hvatanje ucinilaca tih krivicnih djela te njihovo privodjenje nadleznim organima; - poslovi drzavljanstva Federacije; - osiguranje odredjenih licnosti i zgrada Federacije; - zastita ljudskih prava i gradanskih sloboda u oblasti unutrasnjih poslova.Clan 3. Pod medjukantonalnim kriminalom, u smislu ovog zakona, smatraju se sva krivicna djela kod kojih su okrivljeni ili ostecena lica sa prebivalistem na teritoriji razlicitih kantona, kao i djela izvrsena na teritoriji razlicitih kantona ili zapoceta na teritoriji jednog a zavrsena na teritoriji drugog kantona, ili ako su stetne posljedice nastupile na teritoriji vise kantona. Clan 4. Pod organiziranim kriminalom,


Sorry jos jednom zbog propusta u prvom postu
Ajd Zdravo
 
Odgovor na temu

Vladica Savić
Software Developer
Toronto, Canada

Član broj: 26699
Poruke: 654



+5 Profil

icon Re: Regexp i izvlacenje texta05.10.2011. u 19:05 - pre 152 meseci
Pa ako ti input fajl izgleda onako kako si stavio u prvom postu, kako znas da si dobio u toj promenjivoj ovako?
Isao si kroz debug mode u nekom IDE-u ili si samo pustio neki echo? :)
 
Odgovor na temu

GMC
Selo Veselo

Član broj: 11492
Poruke: 338
31.176.207.*



Profil

icon Re: Regexp i izvlacenje texta05.10.2011. u 19:25 - pre 152 meseci
Znaci ovako, kada sam tvoj izraz ubacio u preg_match_all funkciju i nakon toga uz pomoc print_r pogledam sadrzaj varijable $matches (u kojoj bi, trebali biti rezultati) dobijem ovo:
Code:

Array
(
    [0] => Array
        (
        )

    [1] => Array
        (
        )

    [CLAN] => Array
        (
        )

    [2] => Array
        (
        )

    [TEKST] => Array
        (
        )

    [3] => Array
        (
        )

)


Pokusao sam ispisati posebno i TEKST odnosno CLAN ali ne dobijem nista tj. tada dobijem samo Array();

Posto moj jednostavni kod ucita txt file iz foldera i onda sav njegov sadrzaj (koji smjestim u jednu varijablu) provucem kroz preg_match_all funkciju, ja sam prije pozivanja funkcije ubacio samo
Code:
echo $sadrzaj;

i dobio ispis bez razmaka i bilo kakvog drugog formatiranja.


Ajd Zdravo
 
Odgovor na temu

Vladica Savić
Software Developer
Toronto, Canada

Član broj: 26699
Poruke: 654



+5 Profil

icon Re: Regexp i izvlacenje texta05.10.2011. u 19:49 - pre 152 meseci
Daj napisi mi ovde kako si ubacio regex u svoj kod, tj. jel si ukljucio i msix opcije za regex (multi line, single line...) ?
 
Odgovor na temu

GMC
Selo Veselo

Član broj: 11492
Poruke: 338
31.176.207.*



Profil

icon Re: Regexp i izvlacenje texta05.10.2011. u 19:59 - pre 152 meseci
hehe evo ubacio sam "/is" na kraj regexp-a i sada sam dobio , barem na prvi pogled ono sto i treba.
Samo vec sam na izlazu iz kuce pa ne mogu proanalizirati rezultat da vidim jel sada sve ok ili ima jos nekih problemcica ali u svakom slucaju ti hvala puno pa ako bude sta sporno javit cu se ili veceras ili sutra.


Ajd Zdravo
 
Odgovor na temu

GMC
Selo Veselo

Član broj: 11492
Poruke: 338
*.PPPoE-2626.sa.bih.net.ba.



Profil

icon Re: Regexp i izvlacenje texta06.10.2011. u 12:32 - pre 152 meseci
Evo samo da potvrdim da sve radi OK! tnx jos jednom ;)
Ajd Zdravo
 
Odgovor na temu

[es] :: PHP :: Regexp i izvlacenje texta

[ Pregleda: 1743 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.