En utilisant des expressions régulières Python, comment pouvez-vous obtenir un True
/ False
renvoyé ? Tous les retours Python sont :
<_sre.SRE_Match object at ...>
En utilisant des expressions régulières Python, comment pouvez-vous obtenir un True
/ False
renvoyé ? Tous les retours Python sont :
<_sre.SRE_Match object at ...>
Si vous avez vraiment besoin de True
ou False
, utilisez simplement bool
>>> bool(re.search("hi", "abcdefghijkl"))
True
>>> bool(re.search("hi", "abcdefgijkl"))
False
Comme d'autres réponses l'ont souligné, si vous l'utilisez simplement comme condition pour un if
ou while
, vous pouvez l'utiliser directement sans encapsuler dans bool()
Ignacio Vazquez-Abrams a raison. Mais pour élaborer, re.match()
renverra soit None
, qui évalue à False
, soit un objet de correspondance, qui sera toujours True
as il a dit. Ce n'est que si vous voulez des informations sur la ou les parties qui correspondent à votre expression régulière que vous devez vérifier le contenu de l'objet match.
Une façon de le faire est simplement de tester par rapport à la valeur de retour. Parce que vous obtenez <_sre.SRE_Match object at ...>
cela signifie que cela sera évalué comme vrai. Lorsque l'expression régulière ne correspond pas, vous renverrez la valeur None, qui est évaluée à false.
import re
if re.search("c", "abcdef"):
print "hi"
Produit hi
en sortie.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.