"Fredrik Lundh" <[EMAIL PROTECTED]> writes: >Eddie Corns wrote:
>> >I want an re that matches strings like "21MAR06 31APR06 1236", >> >where the last part is day numbers (1-7), i.e it can contain >> >the numbers 1-7, in order, only one of each, and at least one >> >digit. I want it as three groups. I was thinking of >> >> Just a small point - what does "in order" mean here? if it means that eg 1362 >> is not valid then you're stuck because it's context sensitive and hence not >> regular. >> >> I can't see how any of the fancy extensions could help here but maybe I'm >> just lacking insight. >import re >p = re.compile("(?=[1234567])(1?2?3?4?5?6?7?)$") >def test(s): > m = p.match(s) > print repr(s), "=>", m and m.groups() or "none" >test("") >test("1236") >test("1362") >test("12345678") >prints >'' => none >'1236' => ('1236',) >'1362' => none >'12345678' => none ></F> I know I know! I cancelled the article about a minute after posting it. Eddie -- http://mail.python.org/mailman/listinfo/python-list