webForumDet fria alternativet

Funktion RegExp.Replace

ASP

2 svar · 337 visningar · startad av pb81

Medlem sedan okt. 200688 inlägg
Frågan#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?

Medlem 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..

Medlem sedan okt. 200688 inlägg
#3

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

252 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)