[英]String comparison in Python that is case-insensitive for first letter
我需要匹配以下字符串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
有关更多信息,请重新注册。
您可以使用此功能
这里,
使用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
您也可以按照以下方式进行操作:
st="File system full"
vl = re.search(r"(?i)File system full", st)
(?i)
匹配大写和小写字母。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.