Displaying page
of
pages;
Items to
Title |
Test
Details
RFC5322 spec'd email validation
|
Expression |
((((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?[+A-Za-z0-9!#$%&'*/=?\^_`{}|\~-]+(\.[+A-Za-z0-9!#$%&'*/=?\^_`{}|\~-]+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?|(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?\x22((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(([\x21\x23-\x5b\x5d-\x7e]|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f])|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))))*(((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\x22(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\
|
Description |
I built this from the ABNF grammars from necessary pieces from RFC2822, 1034, 5234, and based mainly on 5322 in order to build a complete grammar to make the regex. I learned compiler technology in college.
unfortunately, this web site truncates the regex.
|
Matches |
|
Non-Matches |
nobody@
|
Author |
Rating:
Not yet rated.
Jim Michaels
|
Title |
Test
Details
RFC5322 spec'd bracketed email validation
|
Expression |
((((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?\<((((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?[+A-Za-z0-9!#$%&'*/=?\^_`{}|\~-]+(\.[+A-Za-z0-9!#$%&'*/=?\^_`{}|\~-]+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?|(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)*(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(\(((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?([\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21-\x27\x2a-\x5b\x5d-\x7e]|((\\([\x01-\x09\x0b\x0c\x0e-\x7f]|\x0a*\x0d*([\x00-\x09\x0b\x0c\x0e-\x7f]\x0a*\x0d*)*))|\\(\x00|[\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x0a|\x0d))|))*)+((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?\))+)|((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*)))?\x22((((([\x20\x09]*\x0d\x0a)?[\x20\x09]+)|[\x20\x09]+(\x0d\x0a[\x20\x09]+)*))?(([\x21\x23-\
|
Description |
RFC5322 is the new email spec that replaces 2822 which replaces 822.
I built this directly from the [A]BNF grammars from RFC5322, 2822, 1034, 5234.
the biggest problem I ran into was the fact that regex can't do recursion, so I replaced it with repetition.
unfortunately, this web site truncates the regex.
|
Matches |
|
Non-Matches |
|
Author |
Rating:
Not yet rated.
Jim Michaels
|
Displaying page
of
pages;
Items to