Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re: Common RegExps

by BlaisePascal (Monk)
on Jul 31, 2000 at 22:38 UTC ( [id://25312]=note: print w/replies, xml ) Need Help??


in reply to Common RegExps

Is there a regex that recognises RFC822 email addresses? I'm not asking to see one, I'm asking if it is even possible! RFC822 is notoriously difficult. It wouldn't surprise me if it couldn't be done.

(For instance, doesn't RFC822 allow nested comments? If so, that would ruin it right there...)

Replies are listed 'Best First'.
RE: Re: Common RegExps
by young perlhopper (Scribe) on Jul 31, 2000 at 22:53 UTC
    The 'owl' book (mastering regular expressions) is a great text for questions like this, and my answer comes from it (paraphrased):

    No, you can't really recognize a valid email address with a regex, because technically an email address can have arbitrarily nested comments in parentheses, and a regular expression can never recognize arbitrarily deep nested structures. When you start talking about balanced constructs, you are out of the land of regular languages and into the land of context free languages.

    I wonder if it would be useful or just unnecessary to have native support for context free grammars in perl...

    To recognize all valid email address that have less than or equal to 1 level of comments requires something like a 5000 byte regular expression.

    The moral of this story is that regex's can't do everything.

    -Mark

RE: Re: Common RegExps
by Ted Nitz (Chaplain) on Jul 31, 2000 at 22:48 UTC
    There's an index in Mastering Regular Expressions which is a regex for RFC822 addresses, well except for arbitrarailly nested comments... I think it uses a max of 5 levels or something along those lines. It takes somewhere around 5 pages, and is commented quite well, but it's still not something I'd ever want to have to build.
    -Ted

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://25312]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others pondering the Monastery: (3)
As of 2024-04-25 23:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found