[ GMC @ 05.10.2011. 12:17 ] @
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!
[ Vladica Savić @ 05.10.2011. 12:35 ] @
Here we go :)
Code:
((?<CLAN>Clan\s\d*\.)(?:\s)(?<TEKST>.*?)(?:\r\n\r\n|\r\r|\Z))
[ GMC @ 05.10.2011. 18:09 ] @
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
[ Vladica Savić @ 05.10.2011. 19:05 ] @
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? :)
[ GMC @ 05.10.2011. 19:25 ] @
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.

[ Vladica Savić @ 05.10.2011. 19:49 ] @
Daj napisi mi ovde kako si ubacio regex u svoj kod, tj. jel si ukljucio i msix opcije za regex (multi line, single line...) ?
[ GMC @ 05.10.2011. 19:59 ] @
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.

[ GMC @ 06.10.2011. 12:32 ] @
Evo samo da potvrdim da sve radi OK! tnx jos jednom ;)