Voici deux exemples très basiques du problème que je rencontre actuellement dans mon travail:

import re
type(re.search('(Bob)(.*)(Builder)', "Bob the Builder" , re.IGNORECASE))

Renvoie _sre.SRE_Match et

import re
type(re.search('(Bob)(.*)(Builder)', "the Builder" , re.IGNORECASE))

Renvoie NoneType. Comment puis-je tester la condition si le type de données est _sre.SRE_Match ou NoneType? Quand j'essaye d'implémenter le code

import re
type(re.search('(Bob)(.*)(Builder)', "the Builder" , re.IGNORECASE)) is None

Il renvoie False alors qu'il devrait renvoyer True. Qu'est-ce que je fais de mal ici? Merci!

0
Wilson 3 avril 2017 à 02:35

2 réponses

Meilleure réponse

type(None) n'est pas None, c'est NoneType. Mais vous n'avez pas besoin de type ici, utilisez simplement un booléen:

if re.search(....): 
  print 'found!'
0
georg 2 avril 2017 à 23:49

En fait, j'ai pu le comprendre après avoir tenté de rechercher des solutions en ligne:

import re
if re.search('(Bob)(.*)(Builder)', "the Builder" , re.IGNORECASE):
    print 1
else:
    print 2
0
Wilson 2 avril 2017 à 23:50