Hello all 
I am trying to solve this problem[1] using regular expression. I wrote this 
code but I am getting time limit exceed. Could some one please tell me how to 
make this code run faster. 

import re

if __name__ == "__main__":
    n = int ( raw_input() )
    c = 1
    while c <= n :
        email =  filter ( lambda x : x !=  None , [ re.search ( 
'[^~!@#$%^&*()<>?,.]*[a-zA-Z0-9][a-zA-Z0-9._][a-zA-Z0-9._][a-zA-Z0-9._][a-zA-Z0-9._][a-zA-Z0-9._]*@[a-zA-Z0-9]+.(com|edu|org|co.in)[^~!@#$%^&*()<>?,.a-zA-Z0-9]*'
 , x ) for x in raw_input().split(' ') ] )
        t = len ( email )
        print 'Case #' + str ( c ) + ': ' + str ( t )
        for i in xrange ( t ):
            print email[i].group()
        c += 1

Also rather than breaking the string at space, I tried to use findall but I am 
not getting correct result. 

>>> re.findall ( 
>>> '[^~!@#$%^&*()<>?,.]*[a-zA-Z0-9][a-zA-Z0-9._][a-zA-Z0-9._][a-zA-Z0-9._][a-zA-Z0-9._][a-zA-Z0-9._]*@[a-zA-Z0-9]+.(com|edu|org|co.in)[^~!@#$%^&*()<>?,.a-zA-Z0-9]*[
>>>  ]+','mukeshtiwari.iiitm...@gmail.com mukeshtiwari.iiitmm...@gmail.com')
['com']

I am suppose to get [ mukeshtiwari.iiit...@gmail.com , 
mukeshtiwari.iiit...@gmail.com] ?

Regards
Mukesh Tiwari

[1] http://www.spoj.com/problems/MAIN12C/
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to