web-dev-qa-db-de.com

Wie entferne ich alle Zeichen vor einem bestimmten Zeichen in Python?

Ich möchte alle Zeichen vor einem bestimmten Zeichen oder Zeichensatz (zum Beispiel) entfernen:

intro = "<>I'm Tom."

Nun möchte ich den <> vor I'm (oder genauer I) entfernen. Irgendwelche Vorschläge?

16
Saroekin

Verwenden Sie re.sub. Passen Sie einfach alle Zeichen bis zu I an, und ersetzen Sie die übereinstimmenden Zeichen durch I.

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

Da index(char) Ihnen den ersten Index des Zeichens liefert, können Sie string[index(char):] einfach ausführen.

In diesem Fall beispielsweise index("I") = 2 und 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

Wenn Sie die Zeichenposition kennen, an der Sie mit dem Löschen beginnen möchten, können Sie die Slice-Notation verwenden:

intro = intro[2:]

Anstatt zu wissen, wo Sie anfangen sollen, wenn Sie die zu entfernenden Zeichen kennen, können Sie die Funktion lstrip () verwenden:

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

str.find konnte den Zeichenindex von certain string's first appearance finden:

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

Ohne Regex

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