182 votes

Supprimer un préfixe d'une chaîne de caractères

J'essaie de faire ce qui suit, de façon claire et pythonique :

def remove_prefix(str, prefix):
    return str.lstrip(prefix)

print remove_prefix('template.extensions', 'template.')

Cela donne :

xtensions

Ce qui n'est pas ce que j'attendais ( extensions ). De toute évidence (je suis stupide), parce que j'ai utilisé lstrip à tort : lstrip supprimera tous les caractères qui apparaissent dans le fichier passé. chars en ne considérant pas cette chaîne comme une chaîne réelle, mais comme "un ensemble de caractères à supprimer du début de la chaîne".

Existe-t-il un moyen standard de supprimer une sous-chaîne du début d'une chaîne ?

2voto

Zacrath Points 347
def remove_prefix(str, prefix):
    if str.startswith(prefix):
        return str[len(prefix):]
    else:
        return str

En guise d'aparté, str est un mauvais nom pour une variable car il fait de l'ombre à la variable str type.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X