したがって、同じ形式の文字列の長いリストがあり、最後の「。」を見つけたいと思います。各文字を「。-」に置き換えます。 rfindを使用してみましたが、これを適切に利用できないようです。
これはそれを行う必要があります
old_string = "this is going to have a full stop. some written sstuff!"
k = old_string.rfind(".")
new_string = old_string[:k] + ". - " + old_string[k+1:]
右から置き換えるには:
def replace_right(source, target, replacement, replacements=None):
return replacement.join(source.rsplit(target, replacements))
使用中で:
>>> replace_right("asd.asd.asd.", ".", ". -", 1)
'asd.asd.asd. -'
私は正規表現を使用します:
import re
new_list = [re.sub(r"\.(?=[^.]*$)", r". - ", s) for s in old_list]
ライナーは次のとおりです。
str=str[::-1].replace(".",".-",1)[::-1]
以下の関数を使用して、右から最初に出現するWordを置き換えることができます。
def replace_from_right(text: str, original_text: str, new_text: str) -> str:
""" Replace first occurrence of original_text by new_text. """
return text[::-1].replace(original_text[::-1], new_text[::-1], 1)[::-1]
a = "A long string with a . in the middle ending with ."
#文字列の最後の出現のインデックスを検索したい場合、この場合は#withの最後の出現のインデックスを検索します
index = a.rfind("with")
#インデックスは0から始まるため、結果は44になります。