Có thể giải quyết vấn đề này bằng cách đảo ngược chuỗi, đảo ngược chuỗi cần thay thế, thay chuỗi bằng đảo ngược chuỗi cần thay và cuối cùng là đảo ngược chuỗi để được kết quả.
Bạn có thể đảo ngược chuỗi bằng ký hiệu cắt đơn giản - [::- 1]. Để thay thế chuỗi, bạn có thể sử dụng str.replace (cũ, mới, đếm). Ví dụ:
def rreplace(s, old, new): return (s[::-1].replace(old[::-1],new[::-1], 1))[::-1] rreplace('Helloworld, hello world, hello world', 'hello', 'hi')
Điều này sẽ cho kết quả:
'Hello world,hello world, hi world'
Một phương pháp khác mà bạn có thể thực hiện là tách ngược chuỗi một lần trên chuỗi cũ và nối danh sách với chuỗi mới. Ví dụ:
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')
Điều này sẽ cho kết quả:
'Hello world,hello world, hi world'