Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I can't test it right now (site down), but I assume that if I give it the examples 1, 2, 23, 512, 461, 781, it will come up with the regular expression ([0-9]+).

However, it could also have come up with the rule ([0-8]*).

So how does it know which one to choose? Can one also submit counter-examples?



This can't really work 100% without exhaustively giving every string accepted by the regex, or giving every string not accepted by the regex. Regular expressions are essentially a shorthand for doing that.

Since it's impossible to do accurately, it has to use some "common sense" via genetic programming or whatever. In your example, it probably sees that people rarely want [1-8]{1,3}, but that it's a subset of \d+ and goes with that instead.


I tried your dataset (exported in JSON): http://pastebin.com/7XU2UfEd

The result is: \d


Some negative examples can help (it is designed to perform a text extraction)


the system tries to generalize, so probably it choose something like \d+ (it is shorter)


Depending on unicode settings, \d != [0-9]. See:

http://stackoverflow.com/a/6479605/4359699




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: