Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで文字列内の最後に出現する式を置き換える方法は?


この問題は、文字列を反転し、置換する文字列を反転し、置換する文字列を反転して文字列を置換し、最後に文字列を反転して結果を取得することで解決できます。

単純なスライス表記-[::-1]で文字列を反転できます。文字列を置き換えるには、str.replace(old、new、count)を使用できます。たとえば、

 def rreplace(s, old, new):
    return (s[::-1].replace(old[::-1],new[::-1], 1))[::-1]
 rreplace('Helloworld, hello world, hello world', 'hello', 'hi')

これにより、出力が得られます:

'Hello world,hello world, hi world'

これを行うことができる別の方法は、古い文字列で文字列を1回逆分割し、リストを新しい文字列と結合することです。たとえば、

 def rreplace(s, old, new):
    li = s.rsplit(old, 1) #Split only once
    return new.join(li)
 rreplace('Helloworld, hello world, hello world', 'hello', 'hi')

これにより、出力が得られます:

'Hello world, hello world, hi world'


  1. Pythonで文字列内の部分文字列の最後の出現のインデックスを見つける方法は?

    Pythonには、文字列の末尾から部分文字列の出現を検索するrfind()メソッドがあります。見つかった場合は最後に発生したインデックスを返し、それ以外の場合は-1を返します。次のように使用できます: >>> 'some of the some'.rfind('some') 12 >>> 'some of the some'.rfind('none') -1 >>> "NikolaTesla".rfind('kola') 2

  2. Pythonで文字列の長さを取得するにはどうすればよいですか?

    Pythonには、複合オブジェクトの長さを指定するlen()というメソッドがあります。文字列の長さを取得するには、文字列をlen()呼び出しに渡すだけです。たとえば、 print(len('abcdefghijklmnopqrstuvwxyz')) 出力 26