我正在寻找Python中的忽略大小写字符串比较.我尝试过:
if line.find('mandy') >= 0:
Run Code Online (Sandbox Code Playgroud)
忽略案例没有成功.我需要在给定的文本文件中找到一组单词.我正在逐行阅读文件.一行上的字可以是mandy,Mandy,MANDY等(我不想使用toupper/ tolower等).
我正在寻找下面的Perl代码的Python等价物.
if ($line=~/^Mandy Pande:/i)
Run Code Online (Sandbox Code Playgroud)
eum*_*iro 96
如果您不想使用str.lower(),可以使用regexp:
import re
if re.search('mandy', 'Mandy Pande', re.IGNORECASE):
# Is True
Run Code Online (Sandbox Code Playgroud)
hev*_*ev1 28
in在应用于str.casefold两个字符串后,可以使用该运算符。
str.casefold是在不区分大小写的比较中推荐使用的方法。
返回字符串的折叠副本。大小写折叠的字符串可用于不大小写匹配。\n\n大小写折叠类似于小写,但更激进,因为它旨在消除字符串中的所有大小写区别。例如,德语小写字母\'\xc3\x9f\'相当于“ss”。因为它已经是小写了,所以 lower() 对 \'\xc3\x9f\' 不会执行任何操作;casefold() 将其转换为“ss”。
\nUnicode 标准第 3.13 节描述了 casefolding 算法。
\n3.3 版本中的新功能。
对于不区分大小写的子字符串搜索:
\nneedle = "TEST"\nhaystack = "testing"\nif needle.casefold() in haystack.casefold():\n print(\'Found needle in haystack\')\nRun Code Online (Sandbox Code Playgroud)\n对于不区分大小写的字符串比较:
\na = "test"\nb = "TEST"\nif a.casefold() == b.casefold():\n print(\'a and b are equal, ignoring case\')\nRun Code Online (Sandbox Code Playgroud)\n
Sam*_*zzo 14
还有另一篇文章在这里.试着看看这个.
顺便说一下,你正在寻找这种.lower()方法:
string1 = "hi"
string2 = "HI"
if string1.lower() == string2.lower():
print "Equals!"
else:
print "Different!"
Run Code Online (Sandbox Code Playgroud)
小智 6
尝试:
if haystackstr.lower().find(needlestr.lower()) != -1:
# True
Run Code Online (Sandbox Code Playgroud)
a = "MandY"
alow = a.lower()
if "mandy" in alow:
print "true"
Run Code Online (Sandbox Code Playgroud)
解决