Python 中不区分大小写的字符串 endswith()
Case-insensitive string endswith() in Python
要以str.endswith()
不区分大小写的方式使用该方法:
- 使用
str.lower()
将两个字符串都转换为小写。 - 使用
str.endswith()
小写字符串的方法。
主程序
string = 'bobbyhadz.com' substring = 'COM' if string.lower().endswith(substring.lower()): # 👇️ this runs print('The string ends with the substring (case-insensitive)') else: print('The string does NOT end with the substring (case-insensitive)') # 👇️ True print( string.lower().endswith(substring.lower()) )
str.lower方法返回字符串
的副本,其中所有大小写字符都转换为小写。
在使用该方法之前,我们使用该str.lower()
方法将两个字符串都转换为小写str.endswith()
。
当两个字符串都转换为相同的大小写时,我们可以以不区分大小写的方式使用该方法。
str.endswith()
如果您的字符串包含非 ASCII 字母,请使用该str.casefold()
方法而不是str.lower()
.
主程序
string = 'bobbyhadz.com' substring = 'COM' if string.casefold().endswith(substring.casefold()): # 👇️ this runs print('The string ends with the substring (case-insensitive)') else: print('The string does NOT end with the substring (case-insensitive)') # 👇️ True print( string.casefold().endswith(substring.casefold()) )
str.casefold方法返回字符串的
casefolded 副本。
主程序
# 👇️ using str.casefold() print('BOBBY'.casefold()) # 👉️ bobby print('ß'.casefold()) # 👉️ ss # 👇️ using str.lower() print('BOBBY'.lower()) # 👉️ bobby print('ß'.lower()) # 👉️ ß
Casefolding 类似于小写,但更激进,因为它旨在删除字符串中的所有大小写区别。
请注意德语小写字母如何ß
等于ss
。
由于该字母已经是小写字母,该
str.lower()
方法按原样返回该字母,同时该str.casefold()
方法将其转换为ss
.str.casefold()
如果您只比较 ASCII 字符串,则无需使用该方法。在这种情况下,使用str.lower()
就足够了。