4 ms·
I can't begin to imagine how much MORE complicated reproducing a regex long-hand might be. They were invented to solve real problems.
by cutler 6y ago
I can't begin to imagine how much MORE complicated reproducing a regex long-hand might be. They were invented to solve real problems.
- smabie 6y agoThe corresponding FSM usually isn't too bad. I've personally never really used regexes that much in production code, but I guess I don't work with strings very often.
- ThrowawayR2 6y agoIt's actually pretty easy to hardcode a regex. Most CS degrees expose students to how finite state machines work and that's all that's needed.
- praptak 6y agoIt's not always simple. Regexes have inherent complexity because the equivalent FSM is, in general case, nondeterministic. This implies it cannot always be easily simulated. So you either drag this complexity into your code or dump it on the regex library. It's a trade-off.
- cutler 6y agoWell, I read Jeffrey Friedl's "Mastering Regular Expressions" two or three times since the 2nd edition was released and I can tell you there's no way anything more than a simple regex is going to be easier to grok when converted to some FSM, especially with look-behind or lazy operators and significant backtracking. I'm referring to the Perl/PCRE regular expression flavour which is the only variant that matters to me. Perl regexen are NFA so I'm not sure your assumptions about FSMs apply.