137 votes

Comment faire correspondre une sous-chaîne dans une chaîne, en ignorant la casse

Je recherche une comparaison de chaînes d'ignorer la casse en Python.

j'ai essayé avec :

 if line.find('mandy') >= 0:

mais aucun succès pour ignorer la casse. J'ai besoin de trouver un ensemble de mots dans un fichier texte donné. Je lis le fichier ligne par ligne. Le mot sur une ligne peut être mandy , Mandy , MANDY , etc. (je ne veux pas utiliser toupper / tolower , etc.).

Je recherche l'équivalent Python du code Perl ci-dessous.

 if ($line=~/^Mandy Pande:/i)

228voto

eumiro Points 56644

Si vous ne souhaitez pas utiliser str.lower() , vous pouvez utiliser une expression régulière :

 import re

if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
    # Is True

47voto

Samuele Mattiuzzo Points 4769

Il y a un autre post ici . Essayez de regarder ça.

BTW, vous recherchez la méthode .lower()

 string1 = "hi"
string2 = "HI"
if string1.lower() == string2.lower():
    print "Equals!"
else:
    print "Different!"

10voto

norbertoisaac Points 71

Essayer:

 if haystackstr.lower().find(needlestr.lower()) != -1:
  # True

8voto

Riccardo Points 33
a = "MandY"
alow = a.lower()
if "mandy" in alow:
    print "true"

solution de contournement

4voto

pabloverd Points 219

vous pouvez également utiliser : s.lower() in str.lower()

Prograide.com

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.

Powered by:

X