Toon posts:

[asp] regexp doorgeefprobleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
ik heb het volgende pattern: "\\[([^=]*)=([^\]]*)\]"
zoals normaal kan ik de twee gevonden stukjes opvragen met "$1" en "$1", alleen wil ik die niet direct veranderen, maar in een functie stoopen die er wat mee doet

normaal doe je:
strbuf = newRegExp.Replace(text,"eerste stukkie: $1 tweede stukkie: $2")

maar ik wil de twee strings die bij $1 en $2 horen doorgeven. Als ik dit doe:

strbuf = newRegExp.Replace(text,parsePseudoCode("$1","$2"))

behandelt die functie "$1" en "$2" als letterlijke strings (functie haalt een heel stuk HTML uit een database aan de hand van die twee stringetjes), maar ik moet de bijbehorende stringetjes hebben. Ik kom er niet echt achter hoe ik dat moet oplossen

Verwijderd

Topicstarter
in javascript moet dat met newRegExp.$1, maar dat werkt in asp dus niet

  • Woudloper
  • Registratie: November 2001
  • Niet online

Woudloper

« - _ - »

Wellicht kan je hier even kijken:

http://www.4guysfromrolla.../regularexpressions.shtml

Hier is namelijk erg veel te vinden over het gebruik van Regular Expression in ASP.

Mocht je nog vragen hebben dan kan je wellicht je vraag anders stellen. Het is nl. ook nog zo dat de regex gebruikers zich meer bevinden in de PHP hoek...

  • _Thanatos_
  • Registratie: Januari 2001
  • Laatst online: 22-06 10:32

_Thanatos_

Ja, en kaal

Voorbeeldje:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Function ERegI_Replace_Iets(SearchString)
   Dim RegEx, Matches, LastFirst, LastLength, Result
   Set RegEx = New RegExp
   RegEx.Pattern = "\\[([^=]*)=([^\]]*)\]"
   RegEx.IgnoreCase = True
   RegEx.Global = True
   LastFirst = 0
   LastLength = 0                                          
   Result = ""
   Set Matches = RegEx.Execute(SearchString)
   For Each Match in Matches
      Result = Result & Mid(SearchString, LastFirst + LastLength _
         + 1, Match.FirstIndex - (LastFirst + LastLength)) & _
         EenFunctie(Match.SubMatches(0))
      LastFirst = Match.FirstIndex
      LastLength = Match.Length
   Next                      
   Result = Result & Right(SearchString, Len(SearchString) _
      - (LastFirst + LastLength))
   Set Matches = Nothing
   Set RegEx = Nothing
   ERegI_Replace_Iets = Result
End Function


Niet getest, komt van een functie die ik voor je aangepast heb. Maar zou redelijk moeten werken dus.

日本!🎌


Verwijderd

Topicstarter
aha, mag ik hieruit de conclusie trekken dat elke regexpmatch een array submatches heeft waar dus die submatches in staan, dat zocht ik dus. hoihoihoi :P

edit: iets te vroeg gejuicht: Object doesn't support this property or method: 'objMatch.subMatches' :'(