Toon posts:

[ASP.NET/VB] Html weg halen tussen tags met RegEx

Pagina: 1
Acties:

Verwijderd

Topicstarter
Is het mogelijk de html te filteren tussen bepaalde tags (bijvoorbeeld tussen [code] tags) door gebruik te maken van regular expressions? zelf krijg ik het niet voor elkaar


code:
1
2
Dim Reg As New System.Text.RegularExpressions.Regex("\\[code\]([^\]]+)\\[\/code\]")
Text = Reg.Replace(Text, System.Web.HttpUtility.HtmlEncode("$1"))

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18:38

Creepy

Tactical Espionage Splatterer

Ja, dit is mogelijk.

.........

........ :)
en wat heb je nu zelf al precies uitgezocht? Wat lukte daar niet mee? Je geeft nu wel heel erg weinig informatie en het lijkt erop alsof je een kant en klaar voorbeeld wilt hebben. En zo werkt het hier niet precies ;) Zie ook P&W FAQ - De "quickstart". Dus als je je topicstart even wilt aanvullen dan graag :)

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Verwijderd

Topicstarter
Oke, ben er weer ff mee bezig geweest en heb het weten te fixe het ziet er alleen een beetje dodgy uit omdat ik 2x de zelfde pattern gebruik...

Kan dit beter:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    Shared Function FormatText(ByVal Text As String) As String
        Dim Eval As New System.Text.RegularExpressions.MatchEvaluator(AddressOf EvalHandler)
        Dim Reg As New System.Text.RegularExpressions.Regex("\\[code\]([^\]]+)\\[\/code\]")
        Text = Reg.Replace(Text, Eval)
        Text = Text.Replace(Environment.NewLine, "<br />")
        Return Text
    End Function

    Private Shared Function EvalHandler(ByVal m As System.Text.RegularExpressions.Match) As String
        Dim r As String
        r = System.Text.RegularExpressions.Regex.Replace(m.Value, "\\[code\]([^\]]+)\\[\/code\]", "$1")

        Return "<i>" & System.Web.HttpUtility.HtmlEncode(r) & "</i>"
    End Function


Zo ja hoe? :) en nee kon het niet op google vinden

  • WormLord
  • Registratie: September 2003
  • Laatst online: 30-03 16:26

WormLord

Devver

Misschien moet je eens kijken wat er in parameter m van je EvalHandler zit. Waarschijnlijk precies datgene wat je wil hebben.

Verwijderd

Topicstarter
Thanks, gevonden :)

code:
1
2
3
    Private Shared Function EvalHandler(ByVal m As System.Text.RegularExpressions.Match) As String
        Return System.Web.HttpUtility.HtmlEncode(m.Groups(1).Value)
    End Function