/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
<table(.*?)>?
Fra : Terje


Dato : 28-05-02 20:12

Jeg prøver å liste opp alle table-taggene i en html-fil ved hjelp av
RegEx.Pattern = "<table(.*?)>". Problemet er at hvis table-taggen er fordelt
over 2 eller flere linjer så "finner" jeg den ikke. Det vil si: det skjer
ikke hver gang, bare med enkelte filer. Når jeg f.eks. parser www.vg.no
finner jeg kun de table-taggene der ordet "table" er skrevet med små
bokstaver, til tross for at jeg har satt RegEx.IgnoreCase = True. Det er jo
mulig at jeg har problemer andre steder i koden min, men i første omgang
lurer jeg på om selve Pattern kan forbedres. Jeg er selv forferdelig svak på
RegEx..

terje



 
 
Torben Brandt (28-05-2002)
Kommentar
Fra : Torben Brandt


Dato : 28-05-02 21:32

Terje wrote in dk.edb.internet.webdesign.serverside.asp:
> Jeg prøver å liste opp alle table-taggene i en html-fil ved hjelp av
> RegEx.Pattern = "<table(.*?)>". Problemet er at hvis table-taggen er fordelt
> over 2 eller flere linjer så "finner" jeg den ikke. Det vil si: det skjer
> ikke hver gang, bare med enkelte filer. Når jeg f.eks. parser www.vg.no
> finner jeg kun de table-taggene der ordet "table" er skrevet med små
> bokstaver, til tross for at jeg har satt RegEx.IgnoreCase = True. Det er jo
> mulig at jeg har problemer andre steder i koden min, men i første omgang
> lurer jeg på om selve Pattern kan forbedres. Jeg er selv forferdelig svak på
> RegEx..

Jeg har et par bud på hvad der kan være galt:
1) Har du sat RegEx.Global = True ? Ellers søger den kun indtil den finder den
første match

2) '.' (punktum) i Pattern matcher alle tegn _på_nær_ linieskift. Alle tegn må
derfor kunne matches af [.\n]

3) '?' efter en '*' giver ikke mening. '*' tager "nul eller flere af tegnet" og
'?' betyder "måske". Men "måske" vil bare svare til at tage 0 af tegnet.

4) Jeg tror slet ikke at du vil matche alle tegn med punktummet. I stedet skal
dit Pattern så således ud:
"<table([^>]*)>"
Altså: du starter med "<table" og fortsætter så så længe du er inde i tagget,
dvs så længe der ikke kommer et '>' og så slutter du af med et '>'

Prøv at se om det ikke virker, ellers så beskriv problemet igen eller send lidt
kode med :)

mvh Torben

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP ???
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Terje (28-05-2002)
Kommentar
Fra : Terje


Dato : 28-05-02 23:20


"Torben Brandt" <torben@actuar.dk> wrote in message
news:ad0pg0$ctl$1@sunsite.dk...
| 4) Jeg tror slet ikke at du vil matche alle tegn med punktummet. I stedet
skal
| dit Pattern så således ud:
| "<table([^>]*)>"


Torben, du har helt rett. Global var satt til True. Det var mitt Pattern som
var for dårlig. Mange takk!
terje



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408938
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste