在 Python 中从字符串中删除前缀
Remove a prefix from a String in Python
使用该str.removeprefix()
方法从字符串中删除前缀,例如
without_prefix = my_str.removeprefix('__')
. 该removeprefix()
方法将返回一个删除了指定前缀的新字符串。
主程序
my_str = '!@#dev test ship___' # ✅ Remove prefix from string (Python 3.9+) without_prefix = my_str.removeprefix('!@#') print(without_prefix) # 👉️ 'dev test ship___' without_suffix = my_str.removesuffix('___') print(without_suffix) # 👉️ '!@#dev test ship' # ----------------------------------------------------- # ✅ Remove prefix from string (older than Python 3.9) def removeprefix(string, prefix): if string.startswith(prefix): return string[len(prefix):] return string print(removeprefix('@@avocado', '@@')) # 👉️ 'avocado' print(removeprefix('!!banana', '!!')) # 👉️ 'banana'
第一个示例使用str.removeprefix()
方法从字符串中删除前缀。
该方法在 Python 3.9 或更高版本中可用。
str.removeprefix
方法检查字符串是否
以指定前缀开头,如果是,则该方法返回不包括前缀的新字符串,否则返回原始字符串的副本。
主程序
print('_hello'.removeprefix('_')) # 👉️ '_' print('???abc'.removeprefix('???')) # 👉️ '???'
该方法不改变原来的字符串,它返回一个新的字符串。字符串在 Python 中是不可变的。
如果您使用旧版本的 Python,您可以removeprefix
自己实现该方法。
主程序
def removeprefix(string, prefix): if string.startswith(prefix): return string[len(prefix):] return string print(removeprefix('@@avocado', '@@')) # 👉️ 'avocado' print(removeprefix('!!banana', '!!')) # 👉️ 'banana'
该removeprefix
函数检查传入的字符串是否以指定的子字符串开头。
如果字符串不以指定的前缀开头,函数将按原样返回字符串。
如果字符串以前缀开头,则该函数返回一个字符串切片,该切片从前缀的最后一个字符之后的字符开始。
主程序
def removeprefix(string, prefix): if string.startswith(prefix): return string[len(prefix):] return string print(removeprefix('...mango', '...')) # 👉️ 'mango' print(removeprefix('>>>melon', '>>>')) # 👉️ 'melon'
Python 索引是从零开始的,因此字符串中的第一个字符的索引为
0
,最后一个字符的索引为-1
or 。 len(my_str) - 1
字符串切片从前缀之后的字符开始,并获取字符串的其余部分。
如果您需要从字符串中删除前缀,忽略大小写,将前缀和字符串转换为小写。
主程序
def removeprefix(string, prefix): if string.lower().startswith(prefix.lower()): return string[len(prefix):] return string print(removeprefix('aBCmango', 'abc')) # 👉️ 'mango' print(removeprefix('tESTmelon', 'test')) # 👉️ 'melon'
我们使用该str.lower()
方法将字符串和前缀转换为小写。
str.lower方法返回字符串
的副本,其中所有大小写字符都转换为小写。