我需要匹配以下字符串
File system full
。问题是起始 F 可以是小写或大写。当字符串比较通常区分大小写时,如何在 Python 中执行此操作?
我将提供布尔指标供您使用(为了简洁起见,而不是实际的
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'
您可以在比较之前降低您的字符串。
test_string = "File system full"
if "file system full" == test_string.lower():
# do stuff
>>> s = 'ABC'
>>> s.lower()
'abc'
>>>
之后就可以使用任意模式进行匹配了。
尝试将字符串转换为任何常见(小写或大写)大小写,然后进行比较
if "File system full".lower() == test_string.lower():
print True
你可以这样尝试
>>> import re
>>> bool(re.match('File system full','file system full', re.IGNORECASE))
True
欲了解更多信息,re.IGNORECASE
您可以使用此功能
在这里,
使用
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
在空闲状态下运行
>>> 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
您也可以通过以下方式进行:
st="File system full"
vl = re.search(r"(?i)File system full", st)
(?i)
匹配大写和小写字母。
该解决方案适用于所有可能的案例模式
字符串=“真” 布尔 = eval(string.capitalize()) 打印(布尔值)