Espressioni regolari, estrarre indirizzo email

martedì 03 febbraio 2009 - 11.05

Gianni77 Profilo | Junior Member

Sto giocando un po con il programma di esempio per ricevere la posta. Quando ricevo una email, ottengo il campo from nel formato:

"nome utente" <indirizzo@email.com>

dato che non sono pratico delle espressioni regolari, c'è un modo per estrarre con queste soltanto la stringa "indirizzo@email.com", o è piu rapido utilizzare una combinazione di substring e instr ?

luigidibiasi Profilo | Guru

>Sto giocando un po con il programma di esempio per ricevere la
>posta. Quando ricevo una email, ottengo il campo from nel formato:
>
>"nome utente" <indirizzo@email.com>
>
>dato che non sono pratico delle espressioni regolari, c'è un
>modo per estrarre con queste soltanto la stringa "indirizzo@email.com",
>o è piu rapido utilizzare una combinazione di substring e instr
>?
Se la stringa che ti arriva è sempre quella sopra descritta:

dim strOrigine as string = " nome utente <indirizzo@email.com>" dim k as string = strOrigine.split(" ")(1) k.replace("<","") k.replace(">","")

Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/

Gianni77 Profilo | Junior Member

A parte che non capisco per quale motivo non mi fa il replace di < e > (stranamente me li ritrovo lo stesso anche nella stringa di uscita), questo metodo non può funzionare se nel nome (quello racchiuso tra virgolette) c'è uno spazio... Io per ora ho risolto con una cosa del genere:

Dim s As String = " ""Nome Cognome"" <nome.cognome@mia.email>" ' email di esempio Dim a As Integer = InStr(s, "<") Dim b As Integer = InStr(s, ">") dim EmailRipulita as string = s.Substring(a, b - a - 1)

però dato che uso le espressioni regolari col php, mi chiedevo se c'è una cosa simile anche in vb per estrarre un pezzo di stringa

Jeremy Profilo | Guru

certo che ci sono...
Cerca nel visualizzatore oggetti Regex e troverai il namespace da impostare nel tuo progetto...

Se le usi già in php credo tu non abbia bisogno di ulteriori info....ma se hai bisogno...facci sapere...
Ciao.

luigidibiasi Profilo | Guru

>>questo metodo non può funzionare se nel nome (quello racchiuso tra virgolette) c'è uno spazio... Io per ora ho risolto con una cosa del genere:

piccola fix scusami ho scritto di fretta

dim strOrigine as string = " nome utente <indirizzo@email.com>"
dim k as string = strOrigine.split(" ")(strOrigine.split(" ").LENGTH-1)
k = k.replace("<","")
k = k.replace(">","")



Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5