我需要匹配以下字符串File system full
。问题是起始F可以是小写或大写。当字符串比较通常区分大小写时,如何在Python中执行此操作?
答案 0 :(得分:4)
为了简明起见,我将为您提供布尔指示符(而不是实际的if
块。
使用正则表达式:
import re
bool(re.match('[F|f]',<your string>)) #if it matched, then it's true. Else, false.
如果字符串可以在输出中的任何位置(我假设字符串)
import re
bool(re.search('[F|f]ile system full',<your string>))
其他选择:
检查'f'和'F'
<your string>[0] in ('f','F')
<your string>.startswith('f') or <your string>.startswith('F')
还有以前建议的lower
方法:
<your string>.lower() == 'f'
答案 1 :(得分:3)
在比较字符串之前,您可以lower。
答案 2 :(得分:2)
test_string = "File system full"
if "file system full" == test_string.lower():
# do stuff
答案 3 :(得分:1)
>>> s = 'ABC'
>>> s.lower()
'abc'
>>>
您可以使用任何模式进行匹配。
答案 4 :(得分:1)
尝试将字符串转换为任何常见(较低或较高)的情况,然后进行比较
答案 5 :(得分:1)
if "File system full".lower() == test_string.lower():
print True
答案 6 :(得分:1)
你可以这样试试,
>>> import re
>>> bool(re.match('File system full','file system full', re.IGNORECASE))
True
有关详细信息,请re.IGNORECASE
答案 7 :(得分:1)
您可以使用此功能
在这里,
两个字符串都使用str.lower()
,
转换为小写
如果两个字符串中的第一个字母相同,则返回True
否则False
def match1(str1 ,str2):
str1 = str1.lower() # to ignore the case
str2 = str2.lower()
if str1[0] == str2[0]:
return True
return False
在IDLE上运行
>>> mystr = 'File system full'
>>> test1 = 'Flow'
>>> test2 = 'flower'
>>> match1(mystr,test1)
True
>>> match(mystr,test2)
True
我不建议使用这种技术作为
您需要输入字符串的大写字母的小写和大写字母
但它有效:)
def match2(str1 ,str2):
if str2[0] == str1[0].lower()\
or str2[0] == str1[0].upper():
return True
return False
答案 8 :(得分:0)
您也可以采用以下方式:
st="File system full"
vl = re.search(r"(?i)File system full", st)
(?i)
匹配大写和小写字母。