Как указывалось в других ответах, если вы просто используете его как условие для if или while, вы можете использовать его напрямую, не обернув bool()
Ответ 3
Игнасио Васкес-Абрамс прав. Но для уточнения, re.match() вернет либо None, который оценивается как False, либо объект сопоставления, который всегда будет True, как он сказал. Только если вам нужна информация о части (ях), которая соответствует вашему регулярному выражению, вам нужно проверить содержимое объекта соответствия.
Ответ 4
Один из способов сделать это - просто проверить значение возврата. Поскольку вы получаете <_sre.SRE_Match object at ...>, это означает, что это будет оцениваться как true. Когда регулярное выражение не сопоставляется, вы получите возвращаемое значение None, которое вычисляется как false.
import re
if re.search("c", "abcdef"):
print "hi"
Производит hi как вывод.
Ответ 5
Вот мой метод:
import re
# Compile
p = re.compile(r'hi')
# Match and print
print bool(p.match("abcdefghijkl"))
Ответ 6
Вы можете использовать re.match() или re.search().
Python предлагает две различные примитивные операции на основе регулярных выражений: re.match() проверяет совпадение только в начале строки, а re.search() проверяет совпадение в любом месте строки (это то, что Perl делает по умолчанию). сослаться на это