---
title: "patternproblem regexp"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/176368-patternproblem-regexp"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Tottemannen"
published: "2009-01-15T20:06:59.000Z"
updated: "2009-01-23T21:18:17.000Z"
replies: 6
views: 433
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/176368-patternproblem-regexp"
---

# patternproblem regexp

## #1 — Tottemannen, 2009-01-15T20:06Z

Jag har en tabell på en sida som jag vill läsa ut namnen och antal på.

```
<TABLE class=3Dcoolmenu>
  <TBODY>
  <TR>
    <TD class=3Dleft>
      <SPAN class=3Dbold> Kalle </SPAN> 8 st
      <BR>
      <SPAN=20 class=3Dbold >Nisse </SPAN> -5 st
      <BR>
      <SPAN =class=3Dbold> Ville </SPAN> 12 st
      <BR>
      <SPAN class=3Dbold> Valle = </SPAN> 99%
      <BR>
    </TD>
    <TD class=3Dright> <SPAN class=3Dtemp> + 4 </SPAN>
    <BR>
    <IMG src=bla bla> 
    </TD>
    </TR>
    </TBODY>
    </TABLE>
```

Har använt koden nedan. Frågan är vad patternmkoden ska vara. Har provat med massa alternativ men det blir fel, antingen en felkod eller en "vit" sida.

```
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET","URL", False

objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

With New RegExp
.Global = false
.IgnoreCase = true
.Pattern = "<table class=3Dcoolmenu> ????????</table>"
Set hittade = .Execute(strHTML)
End With

For each item in hittade

Response.Write item.value & ""

Next

Set hittade = Nothing
```

Nån som har ett förslag??

Permalänk: https://www.webforum.nu/p/176368

## #2 — voigtann1, 2009-01-17T12:50Z

```
.Pattern = "<table class=3Dcoolmenu>([\S\s]+)</table>"
```

Permalänk: https://www.webforum.nu/p/2165794

## #3 — Tottemannen, 2009-01-18T20:36Z

Tack för svaret.
Jag har provat, men det blir bara vitt på sidan.

Jag har provat med \<table\>.\*\</table\>, då fungerar det, men alla tabeller på sidan visas. Så fort jag använder \<table class=""3Dcoolmenu""\>.\*\</table\> så fungerar det inte. Nån som har en aning om varför det inte fungerar då?

Permalänk: https://www.webforum.nu/p/2165876

## #4 — Peter S, 2009-01-18T21:52Z

Din HTML har på vissa ställen tecken där sådana inte bör finnas, t.ex. "\<SPAN=20 class=3Dbold \>". Med följande uppstädade HTML:

```
<TABLE class=3Dcoolmenu>
  <TBODY>
  <TR>
    <TD class=3Dleft>
      <SPAN class=3Dbold> Kalle </SPAN> 8 st
      <BR>
      <SPAN class=3Dbold>Nisse </SPAN> -5 st
      <BR>
      <SPAN class=3Dbold> Ville </SPAN> 12 st
      <BR>
      <SPAN class=3Dbold> Valle = </SPAN> 99%
      <BR>
    </TD>
    <TD class=3Dright> <SPAN class=3Dtemp> + 4 </SPAN>
    <BR>
    <IMG src=bla bla> 
    </TD>
    </TR>
    </TBODY>
    </TABLE>
```

...och följande ASP-kod:

```
Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")
objHTTP.Open "GET","http://localhost/tmp.asp", False

objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

dim hittade

With New RegExp
.Global = false
.IgnoreCase = true
.Pattern = "<table class=3Dcoolmenu>(?:(?:.|\s)*?)</table>"
Set hittade = .Execute(strHTML)
End With

if hittade.count <> 0 then
  dim s
  s = hittade(0)
  set hittade = nothing
  with new regexp
   .global = true
   .ignorecase = true
   .pattern = "<span class=3dbold>(.*?)</span>\s*((?:.|\s)*?)<br>"
   set hittade = .execute(s)
  end with
  for i = 1 to hittade.count
    response.write "[" & (i-1) & "]: name = " & hittade(i-1).submatches(0) & ", count = " & hittade(i-1).submatches(1) & "<br>"
  next
end if
```

...får jag:

```
[0]: name = Kalle , count = 8 st
[1]: name = Nisse , count = -5 st
[2]: name = Ville , count = 12 st
[3]: name = Valle = , count = 99%
```

Permalänk: https://www.webforum.nu/p/2165882

## #5 — Tottemannen, 2009-01-20T19:55Z

Tack för svaret!
Sidan jag hämtar värdena ur ser ut som jag beskrev, och jag kan alltså inte städa upp HTML.
Jag fick det tyvärr inte att fungera.

Jag har dock en annan fråga, jag försöker att hämta ett klockslag ur följande kod:

```
<td>
<img src="bla bla alt="bla bla""/> 
08:44
</td>
```

och använder koden:

```
<%

Set objHTTP = Server.CreateObject("MSXML2.XMLHTTP")

objHTTP.Open "GET","URL", False

objHTTP.Send
strHTML=objHTTP.responseText
Set objHTTP = Nothing

Set objRegExp = New regexp
objRegExp.Global = true
objRegExp.IgnoreCase = true
objRegExp.Pattern = "<td>.*</td>"
Set hittade = objRegExp.Execute(strHTML)

  Set hittade = objRegExp.Execute(strHTML)
  
  Response.Write "" & hittade(1) & "<br>"
  
%>
```

Svaret blir en tom ruta där bilden skulle vara och efter den kommer klockslaget.
Hur ska regexp pattern se ut för att "bilden" inte ska komma med, utan bara klockslaget?
Har läst om regexp pattern på diverse sidor men har inte koll på hur det ska vara.

Permalänk: https://www.webforum.nu/p/2166083

## #6 — Peter S, 2009-01-20T20:01Z

Exempel:

```
With New RegExp
.Global = false
.IgnoreCase = true
.Pattern = "<td>\s*<img[^>]+>\s*([^\s]*?)\s*</td>"
Set hittade = .Execute(strHTML)
End With

If hittade.count > 0 then
  response.write hittade(0).submatches(0)
end if
```

Permalänk: https://www.webforum.nu/p/2166084

## #7 — Tottemannen, 2009-01-23T21:18Z

Tack igen för svaret!

Nu ytterligare en fråga.
Finns det någon syntax för att kunna visa bilder från en annan sida? När man använder regexp blir det ju bara en ram där bilden skulle vara. Vad jag förstår så används regexp bara till text.

Permalänk: https://www.webforum.nu/p/2166347

---

Tråden på webben: https://www.webforum.nu/amne/asp/176368-patternproblem-regexp
