Avatar of PugwashXP
PugwashXPFlag for United Kingdom of Great Britain and Northern Ireland asked on

Regular Expression Error/problem

I have been using the following regular expression to validate email address for some years with no problems:
^([0-9a-zA-Z]([-.\w]*[0-9'a-zA-Z])*@(([0-9a-zA-Z])+([-\w]*[0-9a-zA-Z])*\.)+[a-zA-Z]{2,9})$
However, with email 'address' like the following
peterxx.puggish.1234washingsocks.com.pqr.uk
where the @ is missing the regex system hangs. I've found this with .NET and with Expresso 3.0

Regular Expressions

Avatar of undefined
Last Comment
PugwashXP

8/22/2022 - Mon
ASKER CERTIFIED SOLUTION
Terry Woods

Log in or sign up to see answer
Become an EE member today7-DAY FREE TRIAL
Members can start a 7-Day Free trial then enjoy unlimited access to the platform
Sign up - Free for 7 days
or
Learn why we charge membership fees
We get it - no one likes a content blocker. Take one extra minute and find out why we block content.
See how we're fighting big data
Not exactly the question you had in mind?
Sign up for an EE membership and get your own personalized solution. With an EE membership, you can ask unlimited troubleshooting, research, or opinion questions.
ask a question
kaufmed

It is puzzling indeed. The only things I can attribute it to is the amount of backtracking in the pattern or a bug in the .NET regex engine.

I do think TerryAtOpus' pattern will be fine for this purpose, but I also think that your pattern could be simpler. My offering is:
^[0-9a-zA-Z][-\w.]*(?<=[0-9A-Za-z])@(?:[0-9a-zA-Z][-\w.]*\.)+[a-zA-Z]{2,9}$

Open in new window

kaufmed

Correction:
^[0-9a-zA-Z][-\w.]*(?<=[0-9A-Za-z])@(?:[0-9a-zA-Z][-\w]*\.)+[a-zA-Z]{2,9}$

Open in new window

ASKER
PugwashXP

Speedy and help response - thanks
Experts Exchange has (a) saved my job multiple times, (b) saved me hours, days, and even weeks of work, and often (c) makes me look like a superhero! This place is MAGIC!
Walt Forbes