Как сопоставить подстроку в строке, игнорируя регистр

Я ищу игнорирование сравнения строк в Python.

Я пробовал с:

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

но безуспешно для игнорирования дела. Мне нужно найти набор слов в данном текстовом файле. Я читаю файл построчно. Слово в строке может быть mandy, Mandy, MANDY и т.д. (Я не хочу использовать toupper/tolower и т.д.).

Я ищу Python-эквивалент кода Perl ниже.

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

Ответы

Ответ 1

Если вы не хотите использовать str.lower(), вы можете использовать регулярное выражение:

import re

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

Ответ 2

Там еще один пост здесь. Попробуйте посмотреть на это.

Кстати, вы ищете метод .lower():

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

Ответ 3

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

работать

Ответ 4

import re
if re.search('(?i)Mandy Pande:', line):
    ...

Ответ 5

Смотрите это.

In [14]: re.match("mandy", "MaNdY", re.IGNORECASE)
Out[14]: <_sre.SRE_Match object at 0x23a08b8>

Ответ 6

Try:

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