Avatar billede donkazz Nybegynder
06. september 2007 - 14:32 Der er 14 kommentarer og
1 løsning

Fra <image= til jpg>

Hej alle!

Jeg skal bruge en reg.exp i en funktion, som tager en streng og erstatter alle forekomster af <image=xxxx.jpg> med <img src="xxxx.jpg">.

Er der nogle foreslag til hvordan dette skal gøres? :)

Jeg var selv ude i noget rekursiv funktion med InStr osv., men så gik jeg kold og tænkte der måtte være en smartere måde.

Strengen er et notatfelt i en database, så det er sandsynligt at der er mere end én forekomst af <image=..

Selve billedefilens navn kan sagtens variere, så min instr ting jeg tænkte på kan IMO ikke benyttes.. hvis den kan, så ret mig endeligt. :)
Avatar billede donkazz Nybegynder
06. september 2007 - 14:32 #1
nå ja og jeg ruller med ASP
Avatar billede killer_bee Nybegynder
06. september 2007 - 14:46 #2
hvorfor ikke bare bruge replace funktionen på en string??
Avatar billede barklund Nybegynder
06. september 2007 - 14:46 #3
altså selve udtrykket er jo blot noget med:

s/<img=([^>]+)>/<img src="\1">/g

Hvordan man laver det i ASP kan jeg ikke lige huske - og man laver det jeg egentlig slet ikke i ASP men i VBScript eller JScript. Og da JScript er langt det nemmeste sprog at vælge af de to, så gætter jeg på, at du har valgt det. Her kan man så vidt jeg ved bruge samme syntax som i java script:

foo = foo.replace(/<img=([^>]+)>/, "<img src=\"\\1\">");

Men hvis du anvender VBScript af ukendte årsager, så er du for det første ude i noget rod (for det er VBScript) og for det andet skal det vist laves som:

set r = new regexp
r.pattern = pattern
r.global = true
str = r.replace(str, "<img src=""$1"">")
r = Nothing

:)

--
Morten Barklund
Avatar billede nielle Nybegynder
06. september 2007 - 14:47 #4
Sådan?

tekst = ".... <image=xxxx.jpg> ..."

Dim re
Set re = New RegExp()
With re
    .Pattern = "<image=(.*?)>"
    .IgnorEcAE = tRUE
    .gLOBAL = tRUE
End With

tekst = re.Replace(tekst, "<img src=""$1"">")
Avatar billede nielle Nybegynder
06. september 2007 - 14:49 #5
cAPS-lOCK DRILLER VIST ;^)

tekst = ".... <image=xxxx.jpg> ..."

Dim re
Set re = New RegExp()
With re
    .Pattern = "<image=(.*?)>"
    .IgnoreCase = True
    .Global = True
End With

tekst = re.Replace(tekst, "<img src=""$1"">")
Avatar billede donkazz Nybegynder
06. september 2007 - 15:03 #6
Ja lige præcis nielle!! :-D

Skide godt!! Million tak!

Smid svar så du kan få dine velfortjente points!
Avatar billede barklund Nybegynder
06. september 2007 - 15:06 #7
Jamen, skrev jeg ikke nogenlunde det samme? Endda i flere sprog? :(
Avatar billede donkazz Nybegynder
06. september 2007 - 15:12 #8
Tjoooh men jeg kunne ikke bruge det til noget før nielle udpenslede det, men så smid da et svar så du kan få en bid af kagen. ;-)
Avatar billede nielle Nybegynder
06. september 2007 - 15:16 #9
For min skyld må baklund gerne få pointene på denne her - jeg postede bare uden at se om der var nogen som var kommet før. :^)
Avatar billede barklund Nybegynder
06. september 2007 - 15:20 #10
Nu vil jeg bare slet ikke have dem!!!
Avatar billede nielle Nybegynder
06. september 2007 - 15:22 #11
Jamen skal vi så ikke bare tilbyde donkazz at han kan få lov til at tage dem tilbage igen... :^)
Avatar billede donkazz Nybegynder
06. september 2007 - 15:27 #12
hahaha det er fandme sjauwt det her.. :-D

Så kan jeg da more mig lidt over det, mens politiet evakuerer min bopæl.. :-|
Avatar billede barklund Nybegynder
06. september 2007 - 15:36 #13
TAG DEM BARE SELV, RØVHULLER!!!!! ;)
Avatar billede donkazz Nybegynder
06. september 2007 - 15:55 #14
Tak sa de ha ;-)
Avatar billede barklund Nybegynder
06. september 2007 - 16:11 #15
Så lidt - og held og lykke med det aldeles forfærdelige programmeringssprog :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester