Matchobjets sont toujours vrais et Nonesont renvoyés s'il n'y a pas de correspondance. Testez simplement la justesse.
Code:
>>> st = 'bar'
>>> m = re.match(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
...
'bar'
Sortie = bar
Si vous voulez des searchfonctionnalités
>>> st = "bar"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m is not None:
... m.group(0)
...
'bar'
et si regexpnon trouvé que
>>> st = "hello"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
... else:
... print "no match"
...
no match
Comme @bukzor l'a mentionné, si st = foo barque match ne fonctionnera pas. Donc, il est plus approprié d'utiliser re.search.
bool(re.search('ba[rzd]', 'sometext')).