At Friday 9/2/2007 00:50, you wrote:

Hey Gabriel,

Please keep posting on the list - you'll reach a whole lot of people there...

Thanks again for the help.......  but im still having some issues.....
For some reason the "domsrch.search(key)" is pointing to a memory reference....... so when I do this:
[...]
         print domsrch.search(key)
         if domain == domsrch.search(key):
            utp.write(key + '\n')
<_sre.SRE_Match object at 0xb7f7b0e0>

This is the standard str()/repr() of an object that doesn't care to provide it's own __str__/__repr__ method.

Let's look at the docs. From http://docs.python.org/lib/re-objects.html we see that the search() method returns a MatchObject. And what's that...? See http://docs.python.org/lib/match-objects.html , you might be interested in using group(1) But doing the search that way, means that you must traverse the dict many times, once per domain searched. Doesn't look so good. Two approaches:

1) Build a specific re that matches exactly all the domains you want (and not others). This way you don't even need to use any method in the returned MatchObject: simply, if it's not None, there was a match. Something like this:

<code>
domains = ["yahoo.com", "google.com", "gmail.com"]
domainsre = "|".join(["(%s)" % re.escape("@"+domain)])
# that means: put an @ in front of each domain, make it a group, and join all groups with |
# ([EMAIL PROTECTED])|([EMAIL PROTECTED])|([EMAIL PROTECTED])
domsrch = re.compile(domainsre, re.IGNORECASE)

for key in d1:
  if domsrch.search(key):
    print key
</code>

2) Forget about regular expressions; you already know they're email addresses, just split on the @ and check the right side against the desired domains:

<code>
domains = ["yahoo.com", "google.com", "gmail.com"]
domainsSet = set(domains)

for key in d1:
  name, domain = key.split("@",1)
  if domain.lower() in domainsSet:
    print key
</code>


--
Gabriel Genellina
Softlab SRL

        

        
                
__________________________________________________ Preguntá. Respondé. Descubrí. Todo lo que querías saber, y lo que ni imaginabas, está en Yahoo! Respuestas (Beta). ¡Probalo ya! http://www.yahoo.com.ar/respuestas
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to