Carlos Luis Pérez Alonso wrote:
> I have the next piece of code:
>  
> ------------------------------------------------------------------------
>  if re.search('^(taskid|bugid):\\d+',logMessage):
>         return 0     
> else:
>         sys.stderr.write("El comentario tiene que contener el taskid:#### o 
> el bugid:####")        
>         return 1
> -------------------------------------------------------------------------
>  
> The regular exprexión is "^(taskid|bugid):\\d+"
>  
> Mi problem is that if logMessage == "taskid:234" the regular expression 
> matched teorically, but the result is always "None" and the function returns 
> 1.
>  
> ¿Does anybody has an idea of what is happening here?
>  
> Thanks

I'm pretty sure it's the escaping on your regular expression. You should use 
the raw string operator:

-----

#!/usr/bin/python

import re,sys

def checkLogMsg(logMessage):
  if re.search(r'^(taskid|bugid):\d+', logMessage):
    return 0
  else:
    sys.stderr.write("El comentario tiene que contener el taskid:#### o el 
bugid:####")
    return 1


print checkLogMsg('taskid:234')
print checkLogMsg('doesnotmatch')

-----

Outputs:
        $ python test_reg.py 
        0
        El comentario tiene que contener el taskid:#### o el bugid:####1


HTH, 

-Jay
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to