4 ms·
That's just silly. Depending on what's in the string, writing a parser might be much better than a regex. Lots of parser libraries already out there, too.
by adamc 16y ago
That's just silly. Depending on what's in the string, writing a parser might be much better than a regex. Lots of parser libraries already out there, too.
- Ixiaus 16y agoI can agree with this sentiment, there's also nothing wrong with writing a parser that breaks the input up into pieces and validates those individual parts using specialized regular expressions.
- aphyr 16y agoEspecially when the spec itself is in EBNF.
- _delirium 16y agoTrue, though it's EBNF with a bunch of explanatory text and annotations. What would be interesting, but I can't find with some googling: Has someone implemented a parser-generator based on the spec? The ideal would be that the parser specification looks a lot like the RFC, since then you'd have more confidence it was actually correct (and it'd be easier to maintain for future changes).
- aphyr 16y agoMy comment above is a regex derived straightforwardly from the spec. Not a full parser, though.
- twopoint718 16y agoThere was a long post on the topic of 'regex-vs-parser' for email on reddit a while back. I hope I'm pointing to the correct person, but he wrote a parser in Haskell that validates against RFC5322: http://hackage.haskell.org/package/email-validate http://hackage.haskell.org/package/email-validate
- alnayyir 16y agoBy all means, use a CFG or a PEG for parsing emails. While you do that, I'll do something that doesn't involve tweezers and code.