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
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