webForumDet fria alternativet

Funktion RegExp.Replace

2 svar · 335 visningar · startad av pb81

pb81Medlem sedan okt. 200688 inlägg
#1

Hejsan!
Jag har ett litet problem.. Jag går igenom en HTMLfil och letar efter taggar som mina användare kan sätta.. jag får ut mina taggar precis som jag vill från HTMLfilen men jag skulle behöva sätta en funktion på svaret jag får ut.

Så här ser koden ut nu..

  set oRegExp = new regexp
  oRegExp.global=true
  oRegExp.ignorecase = true
  oRegExp.pattern = "<!Data=""Test:(.*?)"">"
  HTML = oRegExp.replace(HTML,"$1")

Skulle behöva få in min funktion med namn TestFunc som nedan

  set oRegExp = new regexp
  oRegExp.global=true
  oRegExp.ignorecase = true
  oRegExp.pattern = "<!Data=""Test:(.*?)"">"
  HTML = oRegExp.replace(HTML,TestFunc("$1"))

Finns säkert något smidigt sätt o fixa detta va?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

Du få lägga det i en Match collection, och loopar ut collectionen, ersätt Submatchningen... något i stil med:

Set oRegExp = New RegExp
oRegExp.IgnoreCase = True
oRegExp.MultiLine = True
oRegExp.Pattern = "<!Data=""Test:([\s\S]*?)"">"
Set dataMatches = oRegExp.Execute(HTML)
For Each dataMatch In dataMatches
	HTML = Replace(HTML, dataMatch, TestFunc(dataMatch.SubMatches(0)))
Next

Har inte testat koden, men det är något i den stilen..

pb81Medlem sedan okt. 200688 inlägg
#3

Tack för snabbt svar... funkar fint nu

127 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)