Je cherche à ignorer la comparaison des chaînes de casse en Python. J'ai essayé avec:
if line.find('mandy') >= 0:
mais pas de succès pour ignorer le cas. 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 sais pas voulez utiliser toupper
/tolower
, etc.).
Je cherche l'équivalent Python du code Perl ci-dessous.
if($line=~/^Mandy Pande:/i)
Si vous ne voulez pas utiliser str.lower()
, vous pouvez utiliser regexp:
import re
if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
# is True
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!"
a = "MandY"
alow = a.lower()
if "mandy" in alow:
print "true"
solution de contournement
import re
if re.search('(?i)Mandy Pande:', line):
...
Voir ceci .
In [14]: re.match("mandy", "MaNdY", re.IGNORECASE)
Out[14]: <_sre.SRE_Match object at 0x23a08b8>
Essayer:
if haystackstr.lower().find(needlestr.lower()) != -1:
# True