Jeg har brug for at lave en template engine som kan hente hhv. tags og "loops" ud til mig - gerne via regexp. Mine templates er egentligt bare almindelige html filer, hvor der står html-kommentarer i. Disse kommentarer er mine tags.
I eksemplet er der både almindelige tags og loop. Mit spørgsmål er, hvordan jeg kan bruge regex til at hente mit loop? Jeg vil gerne lave et regex som kan hente selve loopet, samt alt den tekst der står mellem LoopBegin og LoopEnd.
Helt perfekt vill det være, hvis man kunne lave et regex der kunne tage højde for nestede loops, f.eks.:
I lang tid har samarbejdsbranchen fokuseret på at forbedre enhedsfunktioner – bedre kameraer, klarere lyd og smartere software. Men den virkelige forvandling handler ikke om funktioner.
Hvordan havde du forestillet dig, at det skulle gøres ?-)
-- skulle din regexp generere en fuld C#-kode, der lavede et loop, og brugte f.eks. en db-klasse til at hente alle de relevante elementer ?o]
-- umiddelbart tror jeg, du har for høje tanker om mulighederne med regexps, hvorfor ikke bruge almindelig parsing, hvor du samtidig læser forfra og bagfra til at registrere dine loop-matches og derfra kalder en klasse/metode, der kan udføre dit ønske ...
Måske vil almindelig parsing virke, men problemer dér er, at et loop med et bestemt navn, kan være tilstede mere end én gang i en template. Derfor kan jeg ikke læse bagfra for at finde "sluttagget", da det principielt kan tilhøre et andet loop.
F.eks.:
LoopBegin.Records .... et eller andet LoopEnd.Records ... noget LoopBegin.Records .... et eller andet LoopEnd.Records
Har droppet HTML metodikken. Bruger XML i stedet. Der er noget nemmere at styre.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.