Eric Walker wrote:
> All,
> If I have something like this:
> import re
> sample = 'myboss:isbad'
> express = re.compile('(.*):(.*))
> answer = re.match(express,sample)
> 
> how do I get it to  tell me if it was a match or not. I have tried 
> answer.match . It just gives me an object pointer or something.

re.match() will return None if there is no match, or a match object if it 
succeeds. And your syntax isn't quite right, if you compile the re then call 
match() directly on the compiled object. With re.match() you pass the re string 
as the first arg and you don't have to compile it. In either case, the methods 
of the match object give details of the match.
http://docs.python.org/lib/match-objects.html

Finally, you may want to use re.search() instead of match(); match will only 
match the re at the beginning of the string, kind of like if the re started 
with '^'.

 >>> import re
 >>> sample = 'myboss:isbad'
 >>> express = re.compile('(.*):(.*)')
 >>> answer = express.match(sample)
 >>> answer
<_sre.SRE_Match object at 0x008C4A40>
 >>> answer.groups()
('myboss', 'isbad')
 >>> answer = express.match('No colon here, move along')
 >>> answer
 >>> print answer
None

Kent

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to