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