ako vyparsovat block

Aben Siatris aben na webcom.sk
Pondělí Říjen 27 10:00:11 MET 2003


Dňa Po 27. Október 2003 09:56 ste napísali:
> On Mon, Oct 27, 2003 at 09:46:10AM +0100, Aben Siatris wrote:
> > 
> > 
> > a nieje to xml, takze nemozem pouzit xml parser.
> > potreboval by som napisat regexp ktory by mi vyparsoval
> > cely BLOK bez toho aby mi spravil to ze vyparsuje
> > <BLOK><BLOK></BLOK>, ale
> > <BLOK><BLOK></BLOK></BLOK>
> > 
> 
> Nejak jsem to nepochopil, neslo by uvest priklad?

mam taky zaujimavy subor ktory obsahuje taketo konstrukcie

<MODULE=[BLOCK]>
	<-type[mdl]><-global[1]><-category[400]><-name[mview_cX]><-TMP[BASE-CENTER-TOP]>
	<-cache_id[default]>
		<allow_subs[1]>
		<format_500[s]>
		<orderby[starttime DESC]>
		<where[substring(priority,1,3)!='000']>
		<text=[BLOCK]>
		Nejaky riadne uleteny blby text...
		<[BLOCK]>
<[BLOCK]>

a ja uboziak mam na to spravit parser :))
zabudnime na xml. toto je nejaka zverina.

takze, som si postavil zakladny regexp na parsovanie BLOCK

while ($file=~s|<(.[^\n]{1,255}?)\=\[(.{1,50}?)\]>(.*?)<\[\2\]>||si)
{
}

no a samozrejme narazam na ten problem ze nevyparsujem [BLOCK] po <[BLOCK]>
ktory vidim ako logicke zakoncenie ale vezme ten prvy, kedze je tam (.*?)
ale (.*) pouzit nemozem, kedze za tymto <MODULE=[BLOCK]> moze nasledovat
dalsi (a aj nasleduje :)) <MODULE=[BLOCK]>
vzhlad ani fcionalitu daneho datoveho subori nijako neovplyvnim

potreboval by som tomu (.*?) povedat nejako nech zahrna v sebe i pary
BLOCK]>.*?<[BLOCK]>, ale neviem ako na to... asi mi to dnes moc nemysli :)

-- 
:
:. stay cool
:..			Aben Siatris
:..			aben na webcom.sk
:.:
:.: www.WebCom.sk
:.: www.LaMonde.net
:.: www.HOWTOlinux.info
:.: www.SATANICMASS.info
:
--- Gentoo binutils: /usr/bin/sex
:.: "Land o' Goshen!" yelped the sock sniffing stewardess as the
:.: nose-grooming archduke lashed her globular knockers and plugged his
:.: swinish intruder into her palpitating palace.



Další informace o konferenci Perl