[ASP] Regular expression nesten

Pagina: 1
Acties:

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
Ik probeer met ASP UBB tags te parsen voor het forum dat ik voor stage moet ontwerpen. Uiteraard gebruik ik hier RegExps voor. Alles gaat (gelukkig) goed, op een klein dingetje na. Als ik een tag nest op de volgende manier, dan gaat het fout:
testtesttest

Het komt er op mijn forum als volgt uit te zien:
http://www.nvknf.nl/nieuw.../forum/showtopic.asp?id=7
(bovenste post)

Niet helemaal de bedoeling dus.

Dit is ff een stukkie relevante code met de color expressie die ik verzonnen heb:
Visual Basic .NET:
1
2
3
4
5
6
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "\[color=(#{0,1}\w+)\](.*?)\\[/color\]"
s = objRegExp.Replace(s, "<span style=""color: $1"">$2</span>")
Set objRegExp = nothing


Nou is mijn vraag concreet: is dit op te lossen met de gebrekkige regular expression support in ASP, of zou ik dan een uitgebreidere stack based parser moeten schrijven? Zelf kom ik er niet uit, ik loop met mijn oplossingen vaak aan tegen de gebrekken van het object, of ze werken gewoon helemaal niet, ook niet met PCRE in PHP.

[ Voor 19% gewijzigd door NMe op 20-04-2004 11:43 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
Niemand? ;(

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Pathogen
  • Registratie: April 2004
  • Laatst online: 17-05 22:00

Pathogen

Shoop Da Whoop


test


test



voor de rest geen ervaring met RegExps of ASP.

maar zoals ik t zie wordt er een color tag geopend terwijl de andere nog niet gesloten is

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
Enters maken geen verschil, het is de expressie die fout is, niet het nestje. :)
Thrackan schreef op 20 april 2004 @ 11:38:
maar zoals ik t zie wordt er een color tag geopend terwijl de andere nog niet gesloten is
Dat is precies de bedoeling. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • bluuuurgh
  • Registratie: Maart 2004
  • Laatst online: 06-05 23:16
wat wil je daarmee bereiken dan?
red+blue=paars of zo?


hmm lama ik denk dat ik m snap (ben niet erg helder vandaag)
Je wil dus dat als je blue sluit dat de text weer red wordt! (of niet? :S)

iRacing Profiel


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

Lijkt me een stack based parser de enige oplossing?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
bluuuurgh schreef op 20 april 2004 @ 11:48:
hmm lama ik denk dat ik m snap (ben niet erg helder vandaag)
Je wil dus dat als je blue sluit dat de text weer red wordt! (of niet? :S)
Precies, dat was de bedoeling. Maar ik ben er inderdaad bang voor dat wat gorgi zegt de enige oplossing is. Maar als dat zo is ga ik er niet aan beginnen, ik ga geen uitgebreid script schrijven voor zoiets onbelangrijks...moet de baas maar netjes zijn tags op goeie momenten sluiten. :D

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Hoppie
  • Registratie: Februari 2001
  • Niet online
Is het misschien een optie om eerst alleen de eerste color tag te replacen door de span inclusief style en vervolgens de /color tag te vervangen door /span?
Visual Basic:
1
2
3
4
5
6
7
8
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "\[color=(#{0,1}\w+)\]"
s = objRegExp.Replace(s, "<span style=""color: $1"">")
objRegExp.Pattern = "\\[/color\]"
s = objRegExp.Replace(s, "</span>")
Set objRegExp = nothing

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
Hoppie schreef op 20 april 2004 @ 11:59:
Is het misschien een optie om eerst alleen de eerste color tag te replacen door de span inclusief style en vervolgens de /color tag te vervangen door /span?
Visual Basic:
1
2
3
4
5
6
7
8
Set objRegExp = New RegExp
objRegExp.Global = True
objRegExp.IgnoreCase = True
objRegExp.Pattern = "\[color=(#{0,1}\w+)\]"
s = objRegExp.Replace(s, "<span style=""color: $1"">")
objRegExp.Pattern = "\\[/color\]"
s = objRegExp.Replace(s, "</span>")
Set objRegExp = nothing
Nee, das helaas geen optie, omdat je dan de hele layout van een post of zelfs het hele forum kan verkloten door een tag niet te sluiten.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 15:50

gorgi_19

Kruimeltjes zijn weer op :9

Dan krijg je weer het probleem met onafgesloten tags, en kan je net zo goed gelijk een stack-based parser bouwen.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • bluuuurgh
  • Registratie: Maart 2004
  • Laatst online: 06-05 23:16
kan je er niet voor zorgen dat de tags gewoon automatisch een sluittag meekrijgen zodat alles netjes op tijd gesloten wordt?

automatische code aanvulling dus?

(is ook een pain in the ass denk, maar mogelijk)

iRacing Profiel


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
bluuuurgh schreef op 20 april 2004 @ 12:03:
kan je er niet voor zorgen dat de tags gewoon automatisch een sluittag meekrijgen zodat alles netjes op tijd gesloten wordt?

automatische code aanvulling dus?

(is ook een pain in the ass denk, maar mogelijk)
Dat komt behoorlijk in de richting van stack based parsen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • bluuuurgh
  • Registratie: Maart 2004
  • Laatst online: 06-05 23:16
Yeah, zoals ik al zei: ben niet erg helder vandaag...

In dat geval: begin maar te stacken ;)

iRacing Profiel


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Topicstarter
bluuuurgh schreef op 20 april 2004 @ 12:06:
In dat geval: begin maar te stacken ;)
Neuh, als het niet met regexps kan, dan laat maar zitten, een goeie stack based parser schrijf je niet zomaar ff, en om nou voor dit ene kleine probleempje zoiets ingewikkelds te gaan maken gaat mij te ver... ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Hoppie
  • Registratie: Februari 2001
  • Niet online
NMe84 schreef op 20 april 2004 @ 12:01:
[...]

Nee, das helaas geen optie, omdat je dan de hele layout van een post of zelfs het hele forum kan verkloten door een tag niet te sluiten.
Inderdaad. Niet bij stilgestaan... |:(
Pagina: 1