Det jeg skal er at fjerne ikke afsluttet html tags med reg.exs og ASP.
Det skal også sige at jeg er total ny til Reg.ex
Eksempel på kode/strengen: ------------------------------------------------- <!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.0 Transitional//DA'> <html> <head> <title> </title> </head>
Jeg har prøvet med denne kode for at fjerne <I> tags men den virker ikke!
Gobal er på ignore er af (det kan den godt være koderne er skrevet ens, altid)
regEx.Pattern = "<I>([^<\/I>]*?)<\/html>" ' Dette er pattern, der skal søges efter MakeHTMLKorect = regEx.Replace( MakeHTMLKorect, "$1</html>" ) ' Foretag selve erstatningen
Det jeg prøver på er finde forekomster hvor <I>efterfølge af en bunke ukendte ting, men uden </I> og afsluttes med </html>
Men hvis du har en kode der også kan fjerne <i> ikke ok <i>ok</i> den forkerte <i> her så må du da gerne komme med den, så skal jeg nok give dig en bunke point, hvis du hungre efter det. =)
Evt. hvis du har en side hvor jeg evt. kan læse noget mere om reg.ex. Jeg har været nettet rundt, og jeg synes ikke at der er så mange gode sider eller forums rundt reg.ex. Har læst en masse, men det virker som om at det eneste der er at gøre er at prøve det for at lære det. (som så meget andet Programmering)
Der er ikke så meget a misforstå. Hvis man kikker på HTMl koden jeg har lagt ind over er der tre html koder der skal væk, på den ene eller den anden måde!
Jeg vil nu påstå, at det stadig er uklart. I dit tilfælde i spørgsmålet er det klart nok for <ul> og <i>, men <li> kan du ikke bare fjerne. Jo, det ene sted, måske - men i den rigtige <ol> ovenover er de jo heller ikke afsluttede, og de skal vist ikke fjernes.
Du bør gøre dig selv den tjeneste at definere klart og tydeligt hvad dine præmisser er.
Om du nu bruger regulære udtryk eller instr osv gør nok ikke det helt store. Jeg mener du skal bruge en stak af tags for at kunne afgøre hvilke der hænger sammen med hvilke.
Forøvrigt: gør det noget der er for mange </...> sluttags? Mig bekendt ignoreres de alle af browserne, hvis der ikke er noget de passer med. En HTML-validator vil brokke sig, men for en almindelig bruger gør det da vist ingen forskel.
Du ramte sømmet, det skal være html korrekt og igennem en validator.
Alle koderne (maskin koder) er ens, og fejlen er den samme. (Man kunne selvfølgelig rette fejlen der den bliver lavet, men det kan jeg ikke, pga. nogle tåbelige ting!) Der er nogle koder i bunden som skal fjernes fordi de ikke er afsluttet. Derfor behøver jeg kun at lede efter koder som ikke er afsluttet.
Det fedeste havde klart været at den kunne tjecke alle koder om de er startet og lukket rigtigt, som en validator kan, og fjerne alle ikke rigtige tags. Det vriker bare som et større projekt.
Jeg kan godt se at mit overstående kode eksempel er dårligt. Her er et nyt, uden design rundt, for jeg kan godt komme til koden før det bliver kastet rundt: __________________________________________________________________________
dsafasdg<BR> <H2>adfgbadsff</H2> <U>va</U> <!-- Koder der skal fjernes --> <I><U> <!-- Stop --> _____________________________________________________________________
Håber det hjælper, jeg tror bare jeg skal tilbage til tegne brettet og finde ud af en anden måde at løse det på. Jeg køber dog nok stadig en dog om Reg.ex, fordi der er mange tilfælde hvor jeg kan bruge det.
Hejsa Der er ikke noget specielt før dem. Efter koderne er der ingen ting hvis jeg tager det før jeg lægger design koder på. Jeg kan evt. lægge en dumme kode i enden, så der er et fix punkt.
Selve koderne kan være: <P,<EM,<I,<FONT,<U,<BLOCKQUOTE,<PRE,<A,<STRONG,
Jeg er ikke helt sikker på hvor du spørg om der skal være linjeskift mm. Mellemrum og linjesift findes der ikke efter koderne, men kan forekomme før og imellem.
Et præcist kode eksempel ser sådan her ud: ___________________________________________
<P>Bla bla bal. </P>
<P>Bla bla bal bla. </P> <A name=page_8></A> <UL> <LI><EM> <LI> ________________________________________________
Ok - godt nok. Det tror jeg så jeg har taget højde for. Om du kan omskrive det til ASP regulære udtryk ved jeg så ikke. Jeg vil dog sige at jeg ikke vil spilde min ungdom på det :)
Søg efter < Find navnet på taggen fx I Søg efter </I> Hvis den ikke finder en, så skal taggen fjernes hvis den finder en, og der er en <I> forinden, så skal den søge videre indtil den finder endnu en, som ikke har en matchende <I>.
Det skulle ikke være så svært at lave med et loop, men sikkert langsomt at køre :)
Men Regexp, det vil da være smart, men jeg tror det ikke
Jeg tror man er nødt til at lave noget ovenstående, for man er jo nødt til at vide om der er en matchende </I> bare placeret forkert, og hvis den er placeret forkert, så skal man jo tage stilling til om man vil slette den, eller flytte den på plads, hvis man kan gætte hvor den skal være.
Det er også rigtigt! Jeg har da også lavet reg.ex i java.script det burde jeg jo vide, nå men lad os se om det virker!
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.