Match
объекты всегда истинны и None
возвращаются, если совпадений нет. Просто проверьте на истинность.
Код:
>>> st = 'bar'
>>> m = re.match(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
...
'bar'
Выход = bar
Если вам нужна search
функциональность
>>> st = "bar"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m is not None:
... m.group(0)
...
'bar'
а если regexp
не найден, то
>>> st = "hello"
>>> m = re.search(r"ba[r|z|d]",st)
>>> if m:
... m.group(0)
... else:
... print "no match"
...
no match
Как упоминал @bukzor, если st = foo bar
than match не будет работать. Так что его более целесообразно использовать re.search
.
bool(re.search('ba[rzd]', 'sometext'))
.