[ASP] Reg expr { } haken?

Pagina: 1
Acties:

  • Mischa_NL
  • Registratie: Mei 2004
  • Laatst online: 01-02-2023
Wat ik nu toch tegenkom is echt heel erg raar.

Ik ben bezig met een regular expression. Best een simpele zelfs.

Ik wil css highlighten dus: alles tussen { } moet een kleur krijgen.
Nu snap ik natuurlijk wel dat { en } ge-escaped moeten worden.

Dus ik denk ik doe het zo:

Visual Basic:
1
2
3
4
5
6
7
        ''  Set Regular Expr Als RegExp  ''
        Set RegExpr = New RegExp
        RegExpr.Global = True
        RegExpr.IgnoreCase = True

        RegExpr.Pattern = "\{(.*?)\}"
        strReplace = RegExpr.Replace(strReplace, "{<font color=""#000099"">$1</font>}") 


Maar dat werkt dus niet.
Waar kan dat aan liggen?!

EDIT/ Er even vanuit gaande dat hetgeen tussen { en } 1 regel beslaat!

EDIT 2/ OMG wat ben ik stom vergeef me deze topic.
Ik heb { veranderd in { ofzo iets en } in $#125;.
Dit liet dus alleen mozilla firefox niet zien als ik het stukje selecteerde en op 'view selection source drukte'

Deze kan op slot dus. 8)7

[ Voor 54% gewijzigd door Mischa_NL op 21-12-2004 18:00 ]


  • VanRoyal
  • Registratie: Oktober 2004
  • Niet online
Visual Basic:
1
2
        RegExpr.Pattern = "\{(.*?)\}"
        strReplace = RegExpr.Replace(strReplace, "{<font color=""#000099"">$1</font>}") 


Is strReplace wel gevuld met de string waarin je wilt 'replacen' ?

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 15-05 06:45
Ik ken geen ASP, dus misschien zit ik er naast, maar twee dingen vallen me op.

Ten eerste escape je nu waarschijnlijk alleen de accolades in de string; de backslashes komen dus niet in de string terecht. Als je als stringwaarde \{(.*?)\} wilt hebben, dan moet je waarschijnlijk "\\{(.*?)\\}" schrijven.

Ten tweede is het in veel programmeertalen gebruikelijk dat om de reguliere expressie delimiters staan, bijvoorbeeld forward slashes. Het patroon zou dan "/\\{(.*?)\\}/" worden, maar het kan zijn dat dit in ASP niet hoeft (als het wel moet wist je het waarschijnlijk al).

[ Voor 3% gewijzigd door Soultaker op 21-12-2004 18:13 ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22:08

.oisyn

Moderator Devschuur®

Demotivational Speaker

Soultaker: ik dacht dat VB geen C-style escape sequences kende? Maw, je kunt gewoon \ gebruiken in een string.

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Verwijderd

Vervang die
Visual Basic:
1
RegExpr.Pattern = "\{(.*?)\}" 

eens door
Visual Basic:
1
RegExpr.Pattern = "\{([\s\S]*?)\}" 

een "." matched namelijk geen enters etc. "\s\S" matched echt alles.