Python hanya mengganti kejadian terakhir

Misalnya, kami ingin mengganti kejadian terakhir dari string Bar dengan string guys di string berikut

Foo and Bar. Hello Bar.

Hasilnya harus menjadi

Foo and Bar. Hello guys. _

Salah satu ide untuk melakukan ini dengan Python adalah kita akan membalikkan string menggunakan sintaks pemotongan [::-1] ini, lalu menggunakan metode string.replace() untuk mengganti kemunculan pertama string Bar pada string yang dibalik. Terakhir, gunakan lagi [::-1] slicing syntax untuk membalikkan string yang diganti

 

2. Penerapan

string_example. py

def replace_last(string, find, replace): reversed = string[::-1] replaced = reversed.replace(find[::-1], replace[::-1], 1) return replaced[::-1]

 

3. Contoh

result = replace_last("Hello World, Hello World.", "Hello", "Hi") print(result)

Pada kode di atas, kita mengganti kejadian terakhir dari string Foo and Bar. Hello guys. 1 dengan string Foo and Bar. Hello guys. 2. Hasil yang kita dapatkan adalah

Masalah ini dapat diselesaikan dengan membalik string, membalikkan string yang akan diganti, mengganti string dengan kebalikan dari string yang akan diganti dan terakhir membalikkan string untuk mendapatkan hasilnya.  

Anda dapat membalikkan string dengan notasi pemotongan sederhana - [. -1]. Untuk mengganti string, Anda dapat menggunakan str. ganti (lama, baru, hitung). Sebagai contoh,

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

Ini akan memberikan output

'Hello world,hello world, hi world'

Metode lain yang dapat Anda gunakan untuk melakukan ini adalah membalikkan pemisahan string satu kali pada string lama dan menggabungkan daftar dengan string baru. Sebagai contoh,

Halo semua. Pada artikel ini, kita akan berbicara tentang python menggantikan kejadian terakhir dalam string. Anda dapat melihat cara mengganti kemunculan string terakhir dengan python. Jika Anda memiliki pertanyaan tentang bagaimana mengganti hanya kemunculan string terakhir di python maka saya akan memberikan contoh sederhana dengan solusinya. Posting ini akan memberi Anda contoh sederhana python menggantikan kejadian terakhir dalam string. Baiklah, mari kita selami detailnya

Dalam contoh ini, saya akan menambahkan variabel myString dengan string halo. Kemudian kita akan menggunakan fungsi replace() untuk mengganti kejadian terakhir dari string dengan python. Jadi, tanpa basa-basi lagi, mari kita lihat contoh sederhananya. Anda dapat menggunakan contoh-contoh ini dengan versi python3 (Python 3).

Bagaimana menemukan dan mengganti kemunculan terakhir sub dengan pengganti repl dalam string Python s?

Mari kita lihat beberapa contoh untuk memahami masalahnya secara menyeluruh

Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result: 'finxter' Example 2: s = '...' sub = '.' repl = 'hello' result: '..hello' Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result: 'hello\nworld and universe'_

Mari selami metode Python murni pertama selanjutnya

Metode 1. menemukan()

Metode Python index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]_2 mengembalikan indeks tertinggi dalam string tempat substring ditemukan, yaitu. e. , indeks kejadian terakhir dari substring dalam string yang diberikan atau index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]3 jika tidak ditemukan. Anda dapat menggunakan mengiris dalam kombinasi dengan index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]4 yang ditemukan untuk menyelesaikan masalah seperti itu

index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]_
  • Anda menggunakan index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]_5 untuk menemukan kejadian terakhir dari sub di s
  • Anda menggunakan operasi pemotongan index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]_8 dan index = s.rfind(sub) s[:index] + repl + s[index+len(sub):]9 untuk mendapatkan bagian yang tidak berubah dari string baru yang tidak diganti
  • Anda memasukkan string pengganti repl_ menggunakan penggabungan string dengan hasil operasi pemotongan di atas

Mari kita lihat contoh praktis selanjutnya

Contoh. Inilah cara Anda dapat membuat string baru dengan kejadian terakhir dari substring yang diberikan diganti dengan string pengganti yang diberikan

def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'

Agar dapat dipahami, mari selami dua contoh lain yang diperkenalkan dalam rumusan masalah

# Example 2: s = '...' sub = '.' repl = 'hello' result = repl_last(s, sub, repl) print(result) # result: '..hello' # Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result = repl_last(s, sub, repl) print(result) # result: 'hello\nworld and universe'

Anda dapat menemukan beberapa informasi latar belakang tentang def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'1 dan beberapa metode string lainnya dalam video berikut—menaklukkan metode string untuk selamanya. 🙂

Metode String Python [Panduan Utama]


Tonton video ini di YouTube

Metode 2. sub ekspresi reguler ()

Fungsi regex def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'_2 menggantikan semua kemunculan pola def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'3 dengan penggantian def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'4 dalam string def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'5. Ini mengembalikan string baru

Misalnya, jika Anda memanggil def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'6, hasilnya adalah string baru def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'7 dengan semua karakter def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'8 diganti dengan def repl_last(s, sub, repl): index = s.rfind(sub) if index == -1: return s return s[:index] + repl + s[index+len(sub):] # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter'9

Namun, Anda tidak ingin mengganti semua substring yang cocok—hanya yang terakhir. Jadi, bagaimana cara mewujudkannya?

Mari kita lihat jawaban singkatnya — saya akan menjelaskannya lebih detail dan dengan contoh sesudahnya

pattern = sub + '(?!.*' + sub + ')' return re.sub(pattern, repl, s, flags=re.DOTALL)
  • Anda membuat pola sub dengan pandangan ke depan negatif # Example 2: s = '...' sub = '.' repl = 'hello' result = repl_last(s, sub, repl) print(result) # result: '..hello' # Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result = repl_last(s, sub, repl) print(result) # result: 'hello\nworld and universe' 1 untuk memastikan bahwa kita cocok dengan pola paling kanan sub dan tidak terjadi di mana pun di sebelah kanan
  • Anda mengganti pola paling kanan ini dengan string pengganti menggunakan metode # Example 2: s = '...' sub = '.' repl = 'hello' result = repl_last(s, sub, repl) print(result) # result: '..hello' # Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result = repl_last(s, sub, repl) print(result) # result: 'hello\nworld and universe' 3
  • Anda menyetel bendera # Example 2: s = '...' sub = '.' repl = 'hello' result = repl_last(s, sub, repl) print(result) # result: '..hello' # Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result = repl_last(s, sub, repl) print(result) # result: 'hello\nworld and universe' _4 untuk memastikan bahwa titik dan asterisk # Example 2: s = '...' sub = '.' repl = 'hello' result = repl_last(s, sub, repl) print(result) # result: '..hello' # Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result = repl_last(s, sub, repl) print(result) # result: 'hello\nworld and universe' 5 bagian dari pola cocok dengan semua karakter termasuk karakter baris baru. Ini hanya pengoptimalan kecil untuk mencocokkan beberapa kasus perbatasan dengan benar

Oke, mari kita lihat kodenya untuk melihat apakah itu memecahkan masalah kita dengan benar

import re def repl_last(s, sub, repl): pattern = sub + '(?!.*' + sub + ')' return re.sub(pattern, repl, s, flags=re.DOTALL) # Example 1: s = 'fifi' sub = 'fi' repl = 'nxter' result = repl_last(s, sub, repl) print(result) # result: 'finxter' # Example 2: s = '...' sub = '.' repl = 'hello' result = repl_last(s, sub, repl) print(result) # result: '..hello' # Example 3: s = 'hello\nworld\nuniverse' sub = '\n' repl = ' and ' result = repl_last(s, sub, repl) print(result) # result: 'hello\nworld and universe'

Ya. Regex untuk menyelamatkan

Apakah Anda ingin menguasai negara adidaya regex? . (1) pelajari bab buku, (2) pecahkan teka-teki kode, dan (3) tonton video bab pendidikan

Tutorial Terkait

  • Sub Regex Python

Python Regex Sub - Bagaimana Cara Mengganti Pola dalam sebuah String?


Tonton video ini di YouTube

Kursus Python Regex

Insinyur Google adalah master ekspresi reguler. Mesin pencari Google adalah mesin pemroses teks besar yang mengekstraksi nilai dari triliunan halaman web.   

Insinyur Facebook adalah master ekspresi reguler. Jejaring sosial seperti Facebook, WhatsApp, dan Instagram menghubungkan manusia melalui pesan teks.  

Insinyur Amazon adalah master ekspresi reguler. Raksasa e-niaga mengirimkan produk berdasarkan deskripsi produk tekstual. Ekspresi reguler mengatur permainan saat pemrosesan teks memenuhi ilmu komputer.  

Jika Anda juga ingin menjadi master ekspresi reguler, lihat kursus Python regex terlengkap di planet ini

Chris

Saat bekerja sebagai peneliti dalam sistem terdistribusi, Dr. Christian Mayer menemukan cintanya untuk mengajar siswa ilmu komputer

Untuk membantu siswa mencapai tingkat kesuksesan Python yang lebih tinggi, dia mendirikan situs web pendidikan pemrograman Finxter. com. Dia adalah penulis buku pemrograman populer Python One-Liners (NoStarch 2020), rekan penulis seri Coffee Break Python dari buku yang diterbitkan sendiri, penggemar ilmu komputer, pekerja lepas, dan pemilik salah satu dari 10 blog Python terbesar di dunia

Kesukaannya adalah menulis, membaca, dan coding. Tetapi hasrat terbesarnya adalah untuk melayani calon pembuat kode melalui Finxter dan membantu mereka meningkatkan keterampilan mereka. Anda dapat bergabung dengan akademi email gratisnya di sini

Bagaimana cara mengganti kemunculan karakter terakhir dalam sebuah string dengan Python?

Masalah ini dapat diselesaikan dengan membalik string, membalikkan string yang akan diganti, mengganti string dengan kebalikan dari string yang akan diganti dan terakhir membalikkan string untuk mendapatkan . .

Bagaimana Anda mengganti hanya satu kemunculan string dengan Python?

replace (old, new[, count]) -> string Kembalikan salinan string S dengan semua kemunculan substring lama diganti dengan yang baru. Jika hitungan argumen opsional diberikan, hanya kemunculan hitungan pertama yang diganti.

Bagaimana cara menghapus kemunculan karakter terakhir dari string dengan Python?

rstrip. Metode string rstrip menghapus karakter dari sisi kanan string yang diberikan padanya. Jadi, kita bisa menggunakannya untuk menghapus elemen terakhir dari string. Kita tidak perlu menulis lebih dari satu baris kode untuk menghapus karakter terakhir dari string.

Bagaimana cara menghapus kemunculan substring terakhir dari string Python?

Untuk menghapus kejadian terakhir dari sebuah substring dari sebuah string. .
Gunakan str. metode rsplit() untuk membagi string satu kali, dari kanan
Gunakan str. join() metode untuk bergabung dengan daftar string
String baru tidak akan berisi kemunculan terakhir dari substring yang disediakan

Postingan terbaru

LIHAT SEMUA