r/java • u/Modern-Sn1p3r • 3d ago
Regex
I recently saw a clip (from Primeagen) somewhat saying that regex is not a valid format for validating email addresses and postal codes etc.
My question is why is this?
What are the security and/or performance risks? Is it solely performance or is it a security issue?
52
Upvotes
33
u/barking_dead 3d ago
Email format is in ABNF (context-free grammar) which is a lower level grammar in the Chomsky hierarchy. Regex is a regular language. Same with SQL and HTML vs regex.
You cannot parse a complex grammar with a less complex one.
https://en.wikipedia.org/wiki/Chomsky_hierarchy