0
votes

Supprimer la sous-chaîne de la chaîne comme lstrip mais pas en tant que caractères uniques

J'ai une chaîne qui se compose uniquement de caractères supérieurs. Donc par exemple: ABCABCABCBCA mais si j'utilisais la méthode .lstrip ('ABC'), cela supprimerait tous les caractères qui sont A, B or C à gauche de la chaîne. Je voudrais supprimer uniquement ABC mais pour chaque ABC de cette chaîne. Donc, ma sortie souhaitée serait: BCA


0 commentaires

3 Réponses :


0
votes

Vous pouvez utiliser str.replace place

>>> s = 'ABCABCABCBCA'
>>> s.replace('ABC', '')
'BCA'


4 commentaires

Cela m'aide merci! Mais je ne voudrais remplacer ABC que sur le côté gauche. Donc dès qu'il y a une autre combinaison à partir de celle fournie, j'aimerais que mon programme arrête de supprimer les ABC


N'avez-vous pas dit que votre production attendue est BCA ? Pouvez-vous fournir quelques exemples supplémentaires s'il y a un cas particulier que j'ai manqué?


Oh, je suis désolé. Donc, si j'aurais la chaîne 'ABCABCBCACBAABCABC', je veux qu'elle supprime tous les ABC de la gauche, donc pour celui-ci, la sortie serait: 'BCACBAABCABC'


Quelqu'un a déjà répondu à une solution de travail mais merci de votre aide!



0
votes

vous pouvez utiliser la méthode string.replace () pour supprimer chaque occurrence de "ABC".

"ABCABCABCBCA".replace('ABC','')


1 commentaires

Merci aussi! Mais je ne voudrais remplacer ABC que sur le côté gauche. Donc dès qu'il y a une autre combinaison à partir de celle fournie, j'aimerais que mon programme arrête de supprimer les ABC



0
votes

Si votre objectif est de remplacer toutes les occurrences de ABC , utilisez replace comme les autres réponses. Si vous souhaitez uniquement supprimer de la gauche, utilisez une regex:

import re

s = "ABCABCABCBCADABC"
re.sub("^(ABC)+", "", s) # 'BCADABC'


0 commentaires