Как сопоставить подстроку в случае игнорирования строки? - PullRequest
45 голосов
/ 05 июля 2011

Я ищу игнорировать сравнение строк в Python.Я попытался с:

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

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

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

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

Ответы [ 6 ]

86 голосов
/ 05 июля 2011

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

import re

if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
    # is True
12 голосов
/ 05 июля 2011

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

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

string1 = "hi"
string2 = "HI"
if string1.lower() == string2.lower():
    print "Equals!"
else:
    print "Different!"
4 голосов
/ 05 июля 2011
a = "MandY"
alow = a.lower()
if "mandy" in alow:
    print "true"

обойти

2 голосов
/ 05 июля 2011

См. это .

In [14]: re.match("mandy", "MaNdY", re.IGNORECASE)
Out[14]: <_sre.SRE_Match object at 0x23a08b8>
2 голосов
/ 05 июля 2011
import re
if re.search('(?i)Mandy Pande:', line):
    ...
1 голос
/ 06 апреля 2017

Попробуйте:

if haystackstr.lower().find(needlestr.lower()) != -1:
  # True
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...