Avatar billede tuctoh Nybegynder
05. april 2004 - 20:29 Der er 4 kommentarer og
1 løsning

Simpel Regular Expression

Hej,

Jeg har brug for en regular expression som kan omdanne for eksempel:

<test@test.dk> Casper Bang <webmaster@exp.juh>
til
test@test.dk, webmaster@exp.juh

det vil sige at den skal returnere selve email adresserne kommasepereret.
Det er vist ret simpel at gøre med en regular expression... men jeg er ikke god til regular expressions ;)

Håber i kan hjælpe.
Thanks!!
Avatar billede Slettet bruger
05. april 2004 - 22:03 #1
Jeg tror du kunne spare en masse besvær med str_replace();

Men du vil måske bruge en regExp?
Avatar billede tuctoh Nybegynder
05. april 2004 - 22:10 #2
nææ, om jeg bruger regExp eller noget andet er underordnet... ville bare tro at regExp er det nemmeste.
Kan du komme med et eksempel på str_replace()? Jeg kender ikke den funktion.

Du skal lige vide at der godt kunne stå:
<test@test.dk> webmaster@exp.juh <webmaster@exp.juh>
men at det kun er bogstaverne mellem < og > der skal opfattes som emails.
Avatar billede eagleeye Praktikant
05. april 2004 - 23:23 #3
Du kan evt. gøre sådan her, et eksempel som gør brug af regular expression:


<%
str = "<test@test.dk> webmaster@exp.juh <webmaster@exp.juh>"

dim re
set re = new RegExp
re.Pattern = "<(.*?)>"
re.Global = true
set objMatches = re.Execute(str)
For Each objMatch In objMatches
  outStr = outStr & ", " & Mid(objMatch.value,2,len(objMatch.value)-2)
Next
'Fjern det føste ", "
outStr = Mid(outStr,3)

Response.Write outStr
%>
Avatar billede tuctoh Nybegynder
06. april 2004 - 11:39 #4
hmm, jeg får fejlen:
Microsoft VBScript runtime error '800a139a'

Unexpected quantifier

/test.asp, line 19


linien 19 er den med set objMatches = re.Execute(str)

hvorfor gør den det?
Avatar billede tuctoh Nybegynder
06. april 2004 - 11:47 #5
Ok, jeg har fået tilpasset det lidt:

Function GetEmailInSquareBrackets(strWithEmail)
  strReturn = ""
  Set objRegEx = New RegExp
  objRegEx.Pattern = "<([^>]*)>"
  objRegEx.Global = True
  Set Matches = objRegEx.Execute(strWithEmail)
  For each Match in Matches
      strReturn = strReturn & ", " & Mid(Match.value,2,len(Match.value)-2)
  Next
  strReturn = Mid(strReturn,3)
  GetEmailInSquareBrackets = strReturn
End Function

jeg fik også lidt hjælp fra en nyhedsgruppe; de to eksempler samlet virkede så til sidst ;)

Tak for hjælpen!!
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