reguliere expressie voor validatie meerdere email adressen

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Argantonis
  • Registratie: Juni 2005
  • Laatst online: 18-09 09:09
Hey,

Ik moet een string met daarin meerdere email adressen valideren, het liefste met een reguliere expressie. Ik heb zelf al wat geprobeerd te schrijven maar ik ben niet echt een regex expert. Ik heb hier wat rond zitten kijken en in een post vond ik deze link: http://www.perlmonks.org/?node_id=393804

Daarvan heb ik de reguliere expressie voor 1 email adres gepakt, namelijk deze: http://www.perlmonks.org/?node_id=393809


Nu is dus het probleem dat ik niet 1 maar meerdere adressen wil valideren in 1 string. Ik heb geprobeerd er een haakje voor te zetten en op het einde dit toe te voegen: ([,;])*(\s)*
Dat zou komma's, puntkomma's en spaties moeten goedkeuren. Maar dat werkt ook niet helemaal lekker. Iemand een idee?
In geval van nood kan ik wel een string tokenizer gebruiken maar helaas kunnen in theorie ook in het email adres zelf komma's en puntkomma's voorkomen.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Argantonis schreef op woensdag 01 juli 2009 @ 16:03:
In geval van nood kan ik wel een string tokenizer gebruiken maar helaas kunnen in theorie ook in het email adres zelf komma's en puntkomma's voorkomen.
Nope.
The local-part of the e-mail address may use any of these ASCII characters:

* Uppercase and lowercase English letters (a-z, A-Z)
* Digits 0 through 9
* Characters ! # $ % & ' * + - / = ? ^ _ ` { | } ~
* Character . (dot, period, full stop) provided that it is not the first or last character, and provided also that it does not appear two or more times consecutively.
En aangezien dat in een domeinnaam ook niet mag: split ze maar gewoon op (punt)komma. :)

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Argantonis
  • Registratie: Juni 2005
  • Laatst online: 18-09 09:09
CodeCaster schreef op woensdag 01 juli 2009 @ 16:06:
[...]

Nope.

[...]

En aangezien dat in een domeinnaam ook niet mag: split ze maar gewoon op (punt)komma. :)
Helaas klopt die wiki niet, tussen " " mag zo'n beetje alles staan. Dus "jan , de hond" <jan@hond.nl> is een perfect geldig email adres.


Zie ook voorbeelden in link die ik gaf:
* Alfred Neuman <Neuman@BBN-TENEXA>
* ":sysmail"@ Some-Group. Some-Org
* Muhammed.(I am the greatest) Ali @(the)Vegas.WBA

[ Voor 19% gewijzigd door Argantonis op 01-07-2009 16:10 . Reden: voorbeelden toegevoegd ]


Acties:
  • 0 Henk 'm!

  • glmona
  • Registratie: Maart 2005
  • Laatst online: 15-08 06:22
dan negeer je toch de tekst tussen quotes, om de splitten..

je wil toch alleen de emailadressen checken?

[ Voor 9% gewijzigd door glmona op 01-07-2009 16:13 ]


Acties:
  • 0 Henk 'm!

  • Argantonis
  • Registratie: Juni 2005
  • Laatst online: 18-09 09:09
glmona schreef op woensdag 01 juli 2009 @ 16:11:
dan negeer je toch de tekst tussen quotes, om de splitten..

je wil toch alleen de emailadressen checken?
Het deel tussen " " hoort daar officieel ook bij. Een email adres kan zelfs van de vorm "Jan, hond"@hond.nl zijn.
Dus liever heb ik een regex oplossing waarbij ik simpelweg toelaat dat er meerdere email adressen in 1 string zitten, gescheiden met , of ; of een spatie.

Acties:
  • 0 Henk 'm!

  • CodeCaster
  • Registratie: Juni 2003
  • Niet online

CodeCaster

Can I get uhm...

Argantonis schreef op woensdag 01 juli 2009 @ 16:09:
[...]


Helaas klopt die wiki niet, tussen " " mag zo'n beetje alles staan. Dus "jan , de hond" <jan@hond.nl> is een perfect geldig email adres.


Zie ook voorbeelden in link die ik gaf:
* Alfred Neuman <Neuman@BBN-TENEXA>
* ":sysmail"@ Some-Group. Some-Org
* Muhammed.(I am the greatest) Ali @(the)Vegas.WBA
Daar gaat een reguliere expressie je ook niet bij helpen. Je zal er, ben ik bang, toch een soort scanner/tokenizer op moeten loslaten.

https://oneerlijkewoz.nl
Op papier is hij aan het tekenen, maar in de praktijk...


Acties:
  • 0 Henk 'm!

  • Argantonis
  • Registratie: Juni 2005
  • Laatst online: 18-09 09:09
CodeCaster schreef op woensdag 01 juli 2009 @ 16:16:
[...]

Daar gaat een reguliere expressie je ook niet bij helpen. Je zal er, ben ik bang, toch een soort scanner/tokenizer op moeten loslaten.
Die gelinkte regex keurt wel bijvoorbeeld Muhammed.(I am the greatest) Ali @(the)Vegas.WBA goed. Ik denk wel dat het met een regex kan om dan ook meerdere adressen achter elkaar te plakken gescheiden met een seperator. Maar ik heb zelf niet genoeg verstand van reguliere expressies om 't op te lossen.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Die regex is ... achterlijk. Ik had 'm al vaker gezien, maar hij blijft werkelijk alles slaan.
Je moet dat monster dan ook zien als een leuke "kijk eens wat ik kan!" en niet als daadwerkelijke zinnige manier om een email adres te valideren :X

* RobIII verwijst naar Creepy's sig.
Some people, when confronted with a problem, think "I know, I'll use regular expressions." Now they have two problems. — Jamie Zawinski
Argantonis schreef op woensdag 01 juli 2009 @ 16:20:
Maar ik heb zelf niet genoeg verstand van reguliere expressies om 't op te lossen.
Trust me; dat monster is zelfs vele regex-ninja's teveel van 't goede geworden; dit kreng is dan ook geen goed begin en ik vraag me af waarom je 'm wil gebruiken als je regexes niet (goed) beheerst.

[ Voor 46% gewijzigd door RobIII op 01-07-2009 16:23 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Argantonis
  • Registratie: Juni 2005
  • Laatst online: 18-09 09:09
Nouja, ik heb zelf deze vrij simpele variant geschreven:

(["]\w+(\s*\w)*+["](\s)*[<]\w+([\.-]\w+)*@\w+([-.]\w+)*\.\w{2,6})[>]([,;]\s*["]\w+(\s*\w)*+["](\s)*[<]\w+([\.-]\w+)*@\w+([-.]\w+)*\.\w{2,6}[>])*([,;])*(\s)*

die valideert eenvoudige reeksen van mail adressen in de vorm "bla bla" <bla@bla.com>, "bla bla 2" <blabla2@bla.com>

Maar nu wil ik eigenlijk dat die ook dit valideert: bla3@bla3.com, "bla bla" <bla@bla.com>, "bla bla 2" <blabla2@bla.com>

Dus een combinatie van een raw email adres (bla3@bla3.com) en de versies met "" en < > eromheen.

Is dat dan makkelijk te doen?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Als je verwacht dat wij het voor je gaan doen dan nee ;) (Zie Kan iemand even...? en scriptrequests)

Laat ik eens beginnen te vragen waarom je überhaupt allerlei vage notaties wil valideren terwijl "99.999%" van de email adressen helemaal geen gebruik maken van die flauwekul. Tenzij je een RFC compliant MTA an 't schrijven bent ofzo zie ik het nut niet zo. En over welke taal/platform hebben we het hier?

[ Voor 30% gewijzigd door RobIII op 01-07-2009 16:39 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Argantonis
  • Registratie: Juni 2005
  • Laatst online: 18-09 09:09
RobIII schreef op woensdag 01 juli 2009 @ 16:33:
[...]

Als je verwacht dat wij het voor je gaan doen dan nee ;) (Zie Kan iemand even...? en scriptrequests)

Laat ik eens beginnen te vragen waarom je überhaupt allerlei vage notaties wil valideren terwijl "99.999%" van de email adressen helemaal geen gebruik maken van die flauwekul. Tenzij je een RFC compliant MTA an 't schrijven bent ofzo zie ik het nut niet zo. En over welke taal/platform hebben we het hier?
Ik gebruik de reguliere expressie in Java, die volgens mij de perl variant aanhoudt.
Daarnaast ben ik al teruggestapt naar een hele simpele zelfgeschreven variant toch? Ik vraag me alleen af hoe ik die combinaties kan maken zoals in mijn laatste post. Trouwens er stond ook dat vragen over reguliere expressies mochten in het "wat mag dan wel" gedeelte ;)

Acties:
  • 0 Henk 'm!

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 08:50

gorgi_19

Kruimeltjes zijn weer op :9

offtopic:
Voor een library van regexen kan je ook eens kijken op http://regexlib.com/ voor een basis expressie. Die kan je vervolgens aanpassen naar de juiste variant.

Digitaal onderwijsmateriaal, leermateriaal voor hbo

Pagina: 1