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