在 Python 中从字符串中删除后缀
Remove a suffix from a String in Python
使用该str.removesuffix()
方法从字符串中删除后缀,例如
without_suffix = my_str.removesuffix('@@@')
. 该removesuffix()
方法将返回一个删除了指定后缀的新字符串。
主程序
# ✅ Remove suffix from string (Python 3.9+) my_str = '$$$melon@@@' without_suffix = my_str.removesuffix('@@@') print(without_suffix) # 👉️ '$$$melon' without_prefix = my_str.removeprefix('$$$') print(without_prefix) # 👉️ 'melon@@@' # ----------------------------------------------------- # ✅ Remove suffix from string (older than Python 3.9) def removesuffix(string, suffix): if string.endswith(suffix): return string[:-len(suffix)] return string print(removesuffix('orange!!!', '!!!')) # 👉️ 'orange' print(removesuffix('pear**', '**')) # 👉️ 'pear'
第一个示例使用str.removesuffix()
方法从字符串中删除后缀。
该方法在 Python 3.9 或更高版本中可用。
str.removesuffix
方法检查字符串是否
以指定的后缀结尾,如果是,则该方法返回一个不包括后缀的新字符串,否则返回原始字符串的副本。
主程序
print('apricot,,,'.removesuffix(',,,')) # 👉️ 'apricot' print('grapefruit=='.removesuffix('==')) # 👉️ 'grapefruit'
该方法不改变原来的字符串,它返回一个新的字符串。字符串在 Python 中是不可变的。
如果您使用旧版本的 Python,您可以removesuffix
自己实现该方法。
主程序
def removesuffix(string, suffix): if string.endswith(suffix): return string[:-len(suffix)] return string print(removesuffix('orange!!!', '!!!')) # 👉️ 'orange' print(removesuffix('pear**', '**')) # 👉️ 'pear'
该removesuffix
函数检查传入的字符串是否以指定的子字符串结尾。
如果字符串不以指定的子字符串结尾,则函数按原样返回字符串。
如果字符串以子字符串结尾,则函数返回函数的一个片段,直到指定的子字符串。
我们使用负字符串切片从新字符串切片中排除后缀。
如果您需要从字符串中删除后缀,忽略大小写,将后缀和字符串转换为小写。
主程序
def removesuffix(string, suffix): if string.lower().endswith(suffix.lower()): return string[:-len(suffix)] return string print(removesuffix('orangeABC', 'abc')) # 👉️ 'orange' print(removesuffix('pearZxc', 'zXC')) # 👉️ 'pear'
我们使用该str.lower()
方法将字符串和后缀转换为小写。
str.lower方法返回字符串
的副本,其中所有大小写字符都转换为小写。