Avatar billede donkazz Nybegynder
24. november 2005 - 14:22 Der er 4 kommentarer og
1 løsning

Hurtigt replace script af en txt fil?

Jeg har en tekstfil med forfærdeligt mange linjer i, som indeholder en mailadresse pr. linje, samt en masse andet kode som jeg ikke kan bruge til noget.

Målet er at jeg skal have alle mailadresser ind i en database der bruges til et nyhedsbrev, men først vil jeg have alle mailadresser stående alene som kommasepareret værdier. Jeg tænkte at reg. exp. var den perfekte måde at gøre det på.

Selve indholdet i txt-filen ser sådan her ud:

8;"blabla@blablabla.dk";"te236781077817888"
120;"blabla@blablabla.dk";"sd287934008282112"
1254;"blabla@blablabla.dk";"sd51706041896160"
2345;"blabla@blablabla.dk";"te305100216651840"
4355;"blabla@blablabla.dk";"as58442148977952"

så selve mønsteret ser sådan her ud:

nr;"mailadresse";"etellerandetsindssygt"

Hvis bare jeg kan få udskrevet en streng med alle mailadresser i, adskilt af kommaer, kan jeg selv bikse noget array-show sammen til at smide ind i databasen.

Hvis der er en eller flere der lige kan fikse sådan et script sammen ville det være cool, eller fortælle mig hvordan jeg skal gøre det. :)
Avatar billede driis Nybegynder
24. november 2005 - 16:09 #1
Denne regex skulle gerne matche alle dine email adresseR:
([0-9a-zA-Z]+[-._+&]*[0-9a-zA-Z]+@[-0-9a-zA-Z]+[.]+[a-zA-Z]{2,6})
Avatar billede donkazz Nybegynder
24. november 2005 - 17:22 #2
Kan du evt. vise et eksempel på hvordan jeg bruger den i sammenhæng? Jeg er helt rookie på reg. exp. området, så I have no clue. :-)
Avatar billede roenving Novice
29. november 2005 - 14:52 #3
Hvilket sprog programmerer du i ?-)

-- og en anden tilgangsvinkel kunne være (her i javascript-syntaks !-)

var reg = /.*?;(.*?);.*?\r\n/g;

nyTxt = txt.replace(reg,"$1,");
Avatar billede donkazz Nybegynder
29. november 2005 - 15:30 #4
Jeg skriver i ASP med VBScript...... Jeg har egentligt løst det med at lave en stupid funktion, der først finder længende af strengen, derefter hvor forekomsten af "; er, og hvor forekomsten af ;" er, og derefter sletter alt til hvv. højre og venstre for de tegn, og tilbage står e-mailadressen. Men det ville stadig være rart at finde ud af hvordan jeg bruger sådan en reg.exp, hvis nu jeg får en anden lignende opgave i fremtiden. :)
Avatar billede roenving Novice
29. november 2005 - 15:46 #5
Ikke så langt fra dette:

dim reg as RegEx 'Men hvad grundobjektet hedder ved jeg ikke
set reg = New RegEx
reg.Pattern = ".*?;(.*?);.*?\r\n"
reg.Global = True

-- og så noget i denne stil:

Replace(reg,"\\1,",Txt)
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