Does anyone know of a tool that would input a list of strings and output a list of regexes that match the strings? An intelligent regex pattern matcher ? If not, what do you think about building something like this?
There is this insane email validating RegEx [0]. The page says:<p>> I did not write this regular expression by hand. It is generated by the Perl module by concatenating a simpler set of regular expressions that relate directly to the grammar defined in the RFC.<p>There's also the famous xkcd Regex Golf [1].
Peter Norvig writes:<p>>So that got me thinking: can I come up with an algorithm to find a short regex that matches the winners and not the losers?<p>And he described his steps to create a RegEx using a list of words that must be matched and those that must not be matched [2]<p>[0]: <a href="http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html" rel="nofollow">http://www.ex-parrot.com/~pdw/Mail-RFC822-Address.html</a><p>[1]: <a href="https://xkcd.com/1313/" rel="nofollow">https://xkcd.com/1313/</a><p>[2]: <a href="http://nbviewer.ipython.org/url/norvig.com/ipython/xkcd1313.ipynb" rel="nofollow">http://nbviewer.ipython.org/url/norvig.com/ipython/xkcd1313....</a>
Well, this is somewhat vague. There's more than one way of matching any string - you'd have to be more specific about what exact form you want your regexes to have.