Регулярные выражения 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
как выходной.