Hi all I'd be interested in comments on a fluent regular expression generator I've been playing with (inspired by the frustrations of a friend of mine who's learning).
The general use case is to be able to construct RE strings such as: r'^\(\d{3,3}\)-{1,1}\d{3,3}\-{1,1}\d{4,4}$' (intended to match North American phone number) as: from grimace import RE north_american_number_re = (RE().start .literal('(').followed_by.exactly(3).digits.then.literal(')') .then.one.literal("-").then.exactly(3).digits .then.one.dash.followed_by.exactly(4).digits.then.end .as_string()) The intent is to provide clarity: since the strings would normally be generated and compiled when a module is first imported, there's minimal overhead. It's on github at https://github.com/benlast/grimace and the first blog post that explains it is here: http://benlast.livejournal.com/30871.html (I've added to it since then). Tests are the best explanation, and they're in the __init__ at the end so that they're self-executing if the init is executed. I'm thinking about other features to implement, and more use cases would be welcome. Cheers ben
-- http://mail.python.org/mailman/listinfo/python-list