10. april 2002 - 12:05
Der er
11 kommentarer og 1 løsning
RegExp og tal
Jeg skal have lagt to tal sammen som er fundet via et RegExp. Men det virker ikke. Gør jeg noget forkert? ' Nedenstående skal udregne 1469 + 2 myStr = "1469:35/2:11" Set RegX = New RegExp RegX.Global = True RegX.IgnoreCase = True RegX.Pattern = "(\d+):(\d\d)/(\d+):(\d\d)" ' har prøvet følgende Response.Write RegX.Replace(myStr, "$1+$3") Response.Write RegX.Replace(myStr, cint("$1")+cint("$3")) Response.Write RegX.Replace(myStr, clng("$1")+clng("$3")) myStr er selvfølgelig en del af en større tekststreng, men for at gøre det overskueligt har jeg kun brugt "1469:35/2:11" i eksemplet. Kan nogen hjælpe eller blot bekræfte at det ikke kan lade sig gøre?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
10. april 2002 - 12:06
#1
Har i øvrigt også prøvet: Response.Write RegX.Replace(myStr, "$1"+"$3")
10. april 2002 - 12:07
#2
Fordi "$1" er en streng .. og "$3" også er .. du må hive dem ud, lægge sammen og replace.
10. april 2002 - 12:09
#3
Hvordan hvie dem ud?
10. april 2002 - 12:13
#4
Set Matches = Rx.Execute(myStr) Så indeholder Matches() de submatches der måtte være ... Men! .. (d+) .. det betyder ikke digit .. det gør: [\d]+ *måske* .. kan ikke helt huske om MS' RegExp bruger \d .. men ellers er [0-9]+ fin.
10. april 2002 - 12:36
#5
Er ikke helt med endnu. Er det noget ala det her du vil: Set Matches = RegX.Execute(myStr) For Each objMatch in Matches ' ... et eller andet Next
10. april 2002 - 12:43
#6
Matches(1) og Matches(3) vil indeholde dine 2 tal
10. april 2002 - 12:56
#7
Det gør den altså ikke Response.Write Matches(0) ' giver 1469:35/2:11 Matches(1) og Matches(3) findes ikke.
10. april 2002 - 12:57
#8
Skal lige siges at du selvfølgelig har ret med mit pattern. Det skulle have været: RegX.Pattern = "(\d+):(\d\d)/(\d+):(\d\d)"
10. april 2002 - 13:25
#9
Fandt ud af hvordan jeg fik mine to tal frem: For Each objMatch in RegX.Execute(myStr) Response.Write objMatch.SubMatches(0) Response.Write objMatch.SubMatches(2) Next
10. april 2002 - 13:47
#10
Så lykkedes det: For Each objMatch in RegX.Execute(myStr) int1 = cInt(objMatch.SubMatches(0)) int2 = cInt(objMatch.SubMatches(2)) Response.Write Replace(myStr, objMatch.value, int1+int2) Next
10. april 2002 - 13:48
#11
Du ledte mig på sporet af svaret så læg et svar ind så får du point.
02. august 2002 - 14:14
#12
jeg lukker så.
Kurser inden for grundlæggende programmering