Just nu i M3-nätverket
Jump to content

regexp


m a r c u s

Recommended Posts

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]

Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...