in reply to Please evaluate: RegEx for validating e-mail addresses

You can write
([a-z]|[0-9])+
also as
([a-z0-9])+
or
[a-z0-9]+
which will save you a lot of capturing clauses if you don't need to capture anything

I didn't analyze the whole regex, but at a first view some questions arised:

x) what's about _ and uppercase letters? -> \w instead of a-z0-9
x) \@{1} is the same as \@ => so {1} can be omitted, also in \.{1}
x) what about user@my-domain.tld ?
x) x.@domain.tld seems ok

BTW: with the flag /x you can write regexes more readable and comment them, e.g.
$mail =~ /^ # at the beginning [a-zA-z0-9] # one letter or digit [a-zA-Z0-9_\-\.] # opt. letters, digits, underscores. \@ [a-zA-z] # one letter ... $/x;

for scripts in production I like to use Mail::RFC822::Address from CPAN...

Best regards,
perl -e "s>>*F>e=>y)\*martinF)stronat)=>print,print v8.8.8.32.11.32"

Replies are listed 'Best First'.
Re^2: Please evaluate: RegEx for validating e-mail addresses
by DaWolf (Curate) on Sep 27, 2004 at 00:05 UTC
    First of all thanks for replying and for your tips about the ways of writing ([a-z]|[0-9])+. Let's see the rest of your reply:

    x) what's about _ and uppercase letters? -> \w instead of a-z0-9

    The underscore is captured on item 3:

    3) (\-|\_)* : Possibly a dash or underscore.

    x) what about user@my-domain.tld ?
    x) x.@domain.tld seems ok


    Good points. Thanks for pointing them.

    BTW: with the flag /x you can write regexes more readable and comment them

    True, but I want to make a regex as generic as possible, so I can use it with other langs such as JavaScript and PHP for an example.

    Thanks a lot. This was exactly the kind of reply I was looking for. :)