Mastering Regular Expressions 2nd Ed.
Jeff Epler
jepler at unpythonic.net
Fri Jul 26 14:25:59 EDT 2002
More information about the Python-list mailing list
Fri Jul 26 14:25:59 EDT 2002
- Previous message (by thread): Mastering Regular Expressions 2nd Ed.
- Next message (by thread): Mastering Regular Expressions 2nd Ed.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Michael Hudson <mwh at python.net> writes: > > Somewhere you can find a (perl) regexp that matches prime but not > > composite numbers, > Michael Hudson <mwh at python.net> continues: > I found it here: > > http://montreal.pm.org/tech/neil_kandalgaonkar.shtml [...] > (you can see I got the above description slightly wrong) > > and think it's sufficiently clever to post a link to. > > Here's it at work in Python: > > >>> def isprime(num, prog=re.compile(r"^1?$|^(11+?)\1+$")): > ... return prog.match('1'*num) is None You can use the zero-length negative lookahead assertion (?!...) to make the RE match on primes (and not match on composites), of course. The expression becomes r"^(?!1?$|^(11+?)\1+$)" This is clearly cooler than the RE that matches multiples of 3 written in binary... I'm not sure this is it, but I think it may be. (0|1(01*0)*1)+ of course, this RE is actually a good old-fashioned RE, so it still has some allure. Jeff
- Previous message (by thread): Mastering Regular Expressions 2nd Ed.
- Next message (by thread): Mastering Regular Expressions 2nd Ed.
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list