Hejsan. Jag kör inte [citat] eller [quote] med RegExp - kolla på www.valhall.cx/dileno/forumcode.txt för lite mer info.. Min funktion är inte färdigutvecklad.. Hej! Okey, så det finna alltså inget direkt sätt att lösa det på med hjälp av RegExp?Regular Expressions
Jag håller på att göra ett forum. Där skall man kunna använda egna taggar för att forma texten som man själv vill ha den. En sådan tagg jag vill ha är [quote]. Jag får det att fungera så länge användaren endast använder en [quote], typ såhär:
[quote]Detta är min text[/quote]
Men om användaren skriver såhär, så fungerar det inte:
[quote]Här har jag en [quote]quote[/quote] i en annan[/quote]
quote "nr1" paras alltså ihop men "nr3" och nr2 samt nr4 händer det ingenting med. Jag vill alltså att man skall kunna använda [quote] i en [quote].
Hur skall jag göra det?
Koden jag har nu ser ut såhär:
re.Pattern = "\[quote\]((.|\n)*?)\[/quote\]"
Text = re.Replace(Text, "<table border=" & Chr(34) & "0" & Chr(34) & _
"><tr><td class=" & Chr(34) & "quote" & Chr(34) & " width=" _
& Chr(34) & "*" & Chr(34) & "<div class=" & Chr(34) & _
"quote" & Chr(34) & "$1</div></td></tr></table>")Sv: Regular Expressions
Sv: Regular Expressions
Om du vill kunna klara av nästlade "taggar" så är det desto knivigare att lösa det med hjälp av reguljära uttryck. Mitt tips är helt enkelt, om du själv vara en riktig coder och skriva koden själv, göra en loop som håller reda på hur många citat-i-citatet man är, om du förstår vad jag menar? Här följer en liten _principlösning_ som du skulle kunna använda dig utav:
strQuoteStart = "[citat]"
strQuoteEnd = "[/citat]
iInQuoteNr = 0 ' i vilken av dom nästlade citaten är vi?
For i = 1 To Len(strPost)
If Mid(strPost, i, Len(strQuoteStart)) = strQuoteStart Then
' nu är vi inne i citat nr #
iInQuoteNr = iInQuoteNr + 1
ElseIf Mid(strPost, i, Len(strQuoteEnd)) = strQuoteEnd Then
' nu är vi inne i ett citat mindre
iInQuoteNr = iInQuoteNr - 1
ElseIf iInQuoteNr > 0 Then
' vi är inne och snurrar i ett citat
Else iInQuoteNr = 0 Then
' vi är INTE inne i något citat
Else
' något skumt har inträffat
End If
Next
Du får spinna vidare lite på den här. Så skulle jag har löst det i alla fall, Andreas H, Trash, SvenPon... eller någon av dom andra klipporna har säkert bättre lösningar.
Lycka till och lev väl,
Tom S.Sv: Regular Expressions
Aja, jag får sätta mig ned och slänga ihop någonting.
Tackar så mycket.