web-dev-qa-db-ja.com

Pythonで特定の文字の前にあるすべての文字を削除するにはどうすればよいですか?

指定された文字または文字セットの前のすべての文字を削除したい(たとえば):

intro = "<>I'm Tom."

<>(より具体的にはI)の前のI'mを削除したいと思います。助言がありますか?

19
Saroekin

つかいます re.subIまでのすべての文字に一致するだけで、一致した文字をIに置き換えます。

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

index(char)は文字の最初のインデックスを取得するため、単にstring[index(char):]を実行できます。

たとえば、この場合、index("I") = 2、およびintro[2:] = "I'm Tom."

13
Ashkay

str.findcertain string's first appearanceの文字インデックスを見つけることができます:

intro[intro.find('I'):]
3
duan
str = "<>I'm Tom."
temp = str.split("I",1)
temp[0]=temp[0].replace("<>","")
str = "I".join(temp)
3
ahmad valipour

削除を開始する場所の文字位置がわかっている場合は、スライス表記を使用できます。

intro = intro[2:]

どこから始めるかを知る代わりに、削除する文字がわかっている場合は、 lstrip() 関数を使用できます。

intro = intro.lstrip("<>")
1
Brent Washburne
import re
intro = "<>I'm Tom."
re.sub(r'<>I', 'I', intro)
0

正規表現なし

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