Just nu i M3-nätverket
Gå till innehåll

regexp


m a r c u s

Rekommendera Poster

Har filens hela innehåll i variabeln s. Vill ta bort all HTML-, ASP-kod samt kommentering, dvs allt innanför < och >. Följande kod visar sig inte fungera:

 

Set oRe = New RegExp

oRe.Global = True

oRe.IgnoreCase = True

oRe.Pattern = "<(.|/n)*>"

s = oRe.Replace(s, "")

 

En rad som <H1>Rubrik</H1> tas bort helt!

Vad är fel och hur ska jag skriva?!

 

(Problemet uppkommer alltid när det finns flera <..> på samma rad.)

 

 

[inlägget ändrat 2002-09-05 11:48:43 av m a r c u s]

Länk till kommentar
Dela på andra webbplatser

Problemet är att Regexp är "girigt" som standard. Det betyder att den försöker matcha så stora strängar som möjligt.

 

Om du alltså använder ditt uttryck på följande sträng

Test <b>med lite fet</b> och <i>kursiv</t> text.

Så kommer den matcha allt mellan första och sista < >:

Test <b>med lite fet</b> och <i>kursiv</t> text.

 

Testa istället följande:

oRe.Pattern = "<([^>])*>"

Vilket alltså först hittar ett < tecken, och sedan fortsätter söka ända till det hittar ett > tecken. ^> betyder "ej >".

 

Här är en länk till en väldigt bra regex. guide:

http://www.contactor.se/~dast/mail2sms/regex.shtml

 

Här är ett lite mer avancerat exempel (iofs för PHP, men du kan lätt applicera det i ASP med lite tankekraft ;). Se exempel 3:

http://se.php.net/manual/en/function.preg-replace.php

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...