[OT] a little about regex

Fulvio fulvio at tm.net.my
Wed Oct 18 07:37:42 CEST 2006

Your mail has been scanned by InterScan MSS.


I'm trying to get working an assertion which filter address from some domain 
but if it's prefixed by '.com'.
Even trying to put the result in a negate test I can't get the wanted result.

The tought in program term :

>>> def filter(adr):
...     import re
...     allow = re.compile('.*\.my(>|$)')
...     deny = re.compile('.*\.com\.my(>|$)')
...     cnt = 0
...     if deny.search(adr): cnt += 1
...     if allow.search(adr): cnt += 1
...     return cnt
>>> filter('some.ads at lazyfox.com.my')
>>> filter('some.ads at lazyfox.net.my')

Seem that I miss some better regex implementation to avoid that both of the 
filters taking action. I'm thinking of lookbehind (negative or positive) 
option, but I think I couldn't realize it yet.
I think the compilation should either allow have no '.com' before '.my' or 
deny should have _only_ '.com' before '.my'. Sorry I don't get the correct 
sintax to do it.

Suggestions are welcome.


More information about the Python-list mailing list