web-dev-qa-db-ja.com

大文字と小文字を区別せずに文字列内の部分文字列を一致させる方法は?

Pythonで大文字と小文字を区別しない文字列比較を探しています。私が試した:

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

ただし、大文字と小文字を区別しない場合は成功しません。特定のテキストファイルで単語のセットを見つける必要があります。ファイルを1行ずつ読んでいます。行の単語は、mandyMandy[〜#〜] mandy [〜#〜]など(toupper/tolowerを使用したくない、等。)。

以下のPerlコードに相当するPythonを探しています。

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

str.lower()を使用したくない場合は、regexpを使用できます。

import re

if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
    # is True
91
eumiro

別の投稿 here があります。これを見てみてください。

ところで、あなたは.lower()メソッドを探しています:

string1 = "hi"
string2 = "HI"
if string1.lower() == string2.lower():
    print "Equals!"
else:
    print "Different!"
12
a = "MandY"
alow = a.lower()
if "mandy" in alow:
    print "true"

回避する

4
Riccardo
import re
if re.search('(?i)Mandy Pande:', line):
    ...
2
a'r

this を参照してください。

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

試してください:

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