J'ai suivi:
temp = "aaaab123xyz@+" lists = ["abc", "123.35", "xyz", "AND+"] for list in lists if re.match(list, temp, re.I): print "The %s is within %s." % (list,temp)
3 Réponses :
Vous pouvez utiliser Cela semble aussi que vous n'avez pas vraiment besoin d'expressions régulières ici. Votre expression régulière Si tel est le cas, vous pouvez faire un confinement de chaîne simple à l'aide de re.search code> au lieu de
re.match code>. p>
123.35 code> ne fait probablement pas ce que vous attendez parce que le point correspond à rien. P>
x dans S code>. p>
Ouais, le vôtre est 5 secondes plus vite, +1
Utilisez re.search code>
ou Il suffit d'utiliser dans si l in temp: code> p>
Liste code> ne doit pas être ombragé, donc
pour l dans les listes: code> est meilleur p>
Je devrais accepter une simple correspondance de substration dans code> est beaucoup plus facile que RE.Search.
Vous pouvez le faire avec une vérification légèrement complexe à l'aide de mappe code> et
tout code>.
>>> temp = "aaaab123xyz@+"
>>> lists = ["abc", "123.35", "xyz", "AND+"]
>>> any(map(lambda match: match in temp, lists))
True
>>> temp = 'fhgwghads'
>>> any(map(lambda match: match in temp, lists))
False