web-dev-qa-db-fra.com

Comment supprimer tous les caractères avant un caractère spécifique en Python?

J'aimerais supprimer tous les caractères avant un caractère désigné ou un ensemble de caractères (par exemple):

intro = "<>I'm Tom."

Maintenant, j'aimerais supprimer le <> avant le I'm (ou plus précisément, I). Aucune suggestion?

16
Saroekin

Utilisez re.sub. Faites simplement correspondre tous les caractères jusqu'à I puis remplacez les caractères correspondants par I.

re.sub(r'.*I', 'I', stri)
15
Avinash Raj

Puisque index(char) vous donne le premier index du caractère, vous pouvez simplement faire string[index(char):].

Par exemple, dans ce cas, index("I") = 2 et intro[2:] = "I'm Tom."

13
Ashkay
str = "<>I'm Tom."
temp = str.split("I",1)
temp[0]=temp[0].replace("<>","")
str = "I".join(temp)
2
ahmad valipour

Si vous connaissez la position du caractère de l'endroit où commencer la suppression, vous pouvez utiliser la notation de tranche:

intro = intro[2:]

Au lieu de savoir par où commencer, si vous connaissez les caractères à supprimer, vous pouvez utiliser la fonction lstrip () :

intro = intro.lstrip("<>")
1
Brent Washburne

str.find pourrait trouver l'index de caractère de certain string's first appearance:

intro[intro.find('I'):]
1
duan
import re
intro = "<>I'm Tom."
re.sub(r'<>I', 'I', intro)
0

Sans regex

intro.split('<>',1)[1]
0
deepesh