ako vyparsovat block

Lukas Svoboda luks na fi.muni.cz
Pondělí Říjen 27 10:16:51 MET 2003


Myslim, ze je chyba spise v navrhu...

Co cely problem obejit dvouma pruchody:
v prvnim pruchodu prejmenujes [BLOCK] na idneticke navesti:
neco jako:
my $no = 0;
1 while(s/(=?)\[BLOCK\]/ defined($1) ?  ("[BLOCK" . $no++ . "]") : ("[BLOCK" . --$no . "]")/g)

No a v druhem pruchodu jses v pohode a delas si co chces:-)

PS napsal jsem to zhalvy bez testovani tak, to ber jen jako priklad...
mozna v tom jsou syntakticke chybky...



On Mon, Oct 27, 2003 at 10:04:49AM +0100, Aben Siatris wrote:
> 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