webForumDet fria alternativet

Problem med RegExp

ASP

4 svar · 329 visningar · startad av lbrink

Medlem sedan aug. 200160 inlägg
Frågan#1

Hejsan!
Har suttit och letat ett tag nu på ett litet problem jag har.
Säg att jag har denna text,

<table width="100%">
<table width="50%">

<table width="30%">
</table>

</table>
</table>

Säg att jag nu vill med hjälp av RegExp skriva ut allting som finns i tabellen "<table width="100%">" , hur löser jag detta?
Använder jag "<table width=""100%"">([\s\S]*?)</table>" så kommer ju scriptet matcha den första </table> och inte den sista som jag vill.
Några förslag på hur detta kan lösas?

Medlem sedan dec. 20025 483 inlägg
#2

Try this:

re.pattern = "<table width=""100%"">(?:.|\n)*?(?:</table>)(?!(?:.|\n)*?</table>)"
Medlem sedan aug. 200160 inlägg
#3

Det funkade till en viss del.
Koden jag använder är just nu

ASP

<%
 Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
     objHTTP.open "GET","http://85.224.78.17/test.htm",false
     objHTTP.send
     strData = objHTTP.ResponseText
     Set objRegExp = New RegExp
         objRegExp.Global = True
         objRegExp.IgnoreCase = True
         objRegExp.Pattern = "<table width=""100%"">(?:.|\n)*?(?:</table>)(?!(?:.|\n)*?</table>)"
         Set objName = objRegExp.Execute(strData)
             For each name in objName
                 Response.Write name.value & "1"
             Next
         Set objName = Nothing
     Set objRegExp = Nothing
 Set objHTTP = Nothing
%>

HTML

<table width="100%">
 <table width="30%">
  <table width="30%">
  </table>
 </table>
</table>

<table width="100%">
 <table width="50%">
  <table width="30%">
  </table>
 </table>
</table>

Det jag nu vill åstakomma är att jag vill loopa ut dessa två tabeller enskilt, och med det regexp mönster jag fick tips om så hämtas båda tabellerna på en och samma gång, några idéer på hur man löser detta?

Medlem sedan dec. 20025 483 inlägg
#4
objRegExp.Pattern = "<table width=""100%"">(?:(?:.|\n)*?</table>){2}(?:.|\n)*?</table>"
Medlem sedan aug. 200160 inlägg
#5

Din lösning fungerade alldeles perfekt, tack!

252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)