Pada artikel ini, kita akan membahas berbagai cara untuk mengganti kemunculan pertama substring dari string dengan Python
Misalkan kita memiliki string,
"This is the last rain of Season and Jack is here."
Dalam string ini, substring “is” muncul di 3 tempat berbeda. Tapi kami hanya ingin mengganti kemunculan pertama dari substring "adalah" dengan "XX". Setelah penggantian, string terakhir harus seperti,
"ThXX is the last rain of Season and Jack is here."_
Ada berbagai cara untuk mengganti hanya kejadian pertama dari substring dalam string. Mari kita bahas satu per satu
Menggunakan fungsi replace[]
Di Python, kelas string menyediakan fungsi replace[] untuk mengubah konten string. Sintaksnya adalah sebagai berikut,
Iklan
replace[substring, replacement, count]
Parameter
- substring. Substring yang perlu diganti dalam string
- penggantian. Tali pengganti. Dengan mana substring akan diganti
- menghitung. Jumlah maksimum kekerapan yang akan diganti
Ini menggantikan hitungan jumlah kemunculan substring yang diberikan dengan string pengganti. Sebuah string tidak dapat diubah dalam Python, oleh karena itu fungsi replace[] mengembalikan salinan string dengan konten yang dimodifikasi
Baca selengkapnya
- Ganti kata dalam string menggunakan kamus dengan Python
- Hapus spasi duplikat dari string dengan Python
- Ganti karakter N Terakhir dari string dengan Python
- Piton. while loop – Dijelaskan dengan contoh
Untuk mengganti hanya kemunculan pertama "adalah" dengan "XX", berikan nilai hitung sebagai 1
Misalnya
strValue = "This is the last rain of Season and Jack is here." # Replace first occurrence of substring 'is' with 'XX' in the string strValue = strValue.replace['is', 'XX', 1] print[strValue]
Keluaran
ThXX is the last rain of Season and Jack is here._
Itu menggantikan kemunculan pertama "adalah" dengan "XX" dalam string
Menggunakan Regex
Modul regex di Python menyediakan fungsi sub[] untuk mengganti konten string berdasarkan pola regex yang cocok. Tanda tangan fungsinya seperti ini,
sub[pattern, replacement_str, original_str, count=N]
Itu mencari kecocokan dari pola regex yang diberikan di sting original_str dan menggantikan N kemunculan substring yang cocok dengan string pengganti i. e. replacement_str
Kita dapat menggunakan ini untuk mengganti hanya kemunculan pertama "adalah" dengan "XX". Untuk itu kita perlu melewatkan parameter hitungan sebagai 1
Misalnya
import re strValue = "This is the last rain of season and Jack is here." # Replace first occurrence of substring 'is' with 'XX' in the string strValue = re.sub['is', 'XX', strValue, count=1 ] print[strValue]_
Keluaran
ThXX is the last rain of Season and Jack is here.
Itu menggantikan kemunculan pertama "adalah" dengan "XX" dalam string
Ringkasan
Kami belajar tentang dua cara berbeda untuk mengganti kemunculan substring pertama ini dalam string dengan Python
Dalam postingan ini, Anda akan mempelajari cara mengganti semua kemunculan string dalam JavaScript dengan memisahkan dan menggabungkan string, string.replace[]
digabungkan dengan ekspresi reguler global, dan
0javascript
const resultingString = pieces.join[replace];
Daftar isi
1. Memisahkan dan menggabungkan array
Jika Anda mencari di Google cara "mengganti semua kemunculan string dalam JavaScript", pendekatan pertama yang mungkin Anda temukan adalah menggunakan larik perantara
Begini cara kerjanya
- Pisahkan
_1 menjadijavascript
const resultingString = pieces.join[replace];
2 dengan stringjavascript
const resultingString = pieces.join[replace];
3javascript
const resultingString = pieces.join[replace];
javascript
const pieces = string.split[search];
- Kemudian gabungkan potongan-potongan itu dengan menempatkan string
_4 di antaranyajavascript
const resultingString = pieces.join[replace];
_javascript
const resultingString = pieces.join[replace];
Misalnya, mari ganti semua spasi
_5 dengan tanda hubungjavascript
const resultingString = pieces.join[replace];
6 dalam stringjavascript
const resultingString = pieces.join[replace];
7javascript
const resultingString = pieces.join[replace];
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
Coba demonya
_8 membagi string menjadi beberapa bagian.javascript
const resultingString = pieces.join[replace];
_9javascript
const resultingString = pieces.join[replace];
Kemudian potongan
_0 digabungkan dengan memasukkanjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
6 di antaranya, yang menghasilkan stringjavascript
const resultingString = pieces.join[replace];
2javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
Berikut adalah fungsi pembantu umum yang menggunakan pendekatan pemisahan dan penggabungan
javascript
function replaceAll[string, search, replace] {
return string.split[search].join[replace];
}
console.log[replaceAll['abba', 'a', 'i']]; // => 'ibbi'
console.log[replaceAll['go go go!', 'go', 'move']]; // => 'move move move!'
console.log[replaceAll['oops', 'z', 'y']]; // => 'oops'
Coba demonya
Pendekatan ini membutuhkan pengubahan string menjadi array, dan kemudian kembali menjadi string. Mari terus mencari alternatif yang lebih baik
2. replace[] dengan ekspresi reguler global
Metode string
3 mencari dan mengganti kemunculan ekspresi regulerjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
4 denganjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
5 stringjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
Untuk membuat metode
_6 ganti semua kemunculan pola - Anda harus mengaktifkan bendera global pada ekspresi regulerjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
- Tambahkan
_7 ke akhir literal ekspresi reguler.javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
_8javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
- Atau saat menggunakan konstruktor ekspresi reguler, tambahkan
9 ke argumen kedua.javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
0javascript
function replaceAll[string, search, replace] {
return string.split[search].join[replace];
}
console.log[replaceAll['abba', 'a', 'i']]; // => 'ibbi'
console.log[replaceAll['go go go!', 'go', 'move']]; // => 'move move move!'
console.log[replaceAll['oops', 'z', 'y']]; // => 'oops'
Mari ganti semua kemunculan
_5 denganjavascript
const resultingString = pieces.join[replace];
6javascript
const resultingString = pieces.join[replace];
javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
Coba demonya
Ekspresi reguler literal
3 [perhatikan bendera globaljavascript
function replaceAll[string, search, replace] {
return string.split[search].join[replace];
}
console.log[replaceAll['abba', 'a', 'i']]; // => 'ibbi'
console.log[replaceAll['go go go!', 'go', 'move']]; // => 'move move move!'
console.log[replaceAll['oops', 'z', 'y']]; // => 'oops'
7] cocok dengan spasijavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
5javascript
const resultingString = pieces.join[replace];
6 mengganti semua kecocokanjavascript
function replaceAll[string, search, replace] {
return string.split[search].join[replace];
}
console.log[replaceAll['abba', 'a', 'i']]; // => 'ibbi'
console.log[replaceAll['go go go!', 'go', 'move']]; // => 'move move move!'
console.log[replaceAll['oops', 'z', 'y']]; // => 'oops'
3 denganjavascript
function replaceAll[string, search, replace] {
return string.split[search].join[replace];
}
console.log[replaceAll['abba', 'a', 'i']]; // => 'ibbi'
console.log[replaceAll['go go go!', 'go', 'move']]; // => 'move move move!'
console.log[replaceAll['oops', 'z', 'y']]; // => 'oops'
6, yang menghasilkanjavascript
const resultingString = pieces.join[replace];
2javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
Anda dapat dengan mudah membuat penggantian yang tidak peka huruf besar/kecil dengan menambahkan bendera
0 ke ekspresi regulerjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
javascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
Ekspresi reguler
_1 melakukan pencarian global case-insensitive [perhatikanjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
0 danjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
7 bendera].javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
_1 cocok denganjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
5, sertajavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
6javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
Memanggil
7 mengganti semua kecocokanjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
1 substring denganjavascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
9javascript
const searchRegExp = /\s/g;
const replaceWith = '-';
const result = 'duck duck go'.replace[searchRegExp, replaceWith];
console.log[result]; // => 'duck-duck-go'
2. 1 Ekspresi reguler dari sebuah string
Saat ekspresi reguler dibuat dari string, Anda harus menghindari karakter
0 karena mereka memiliki arti khusus dalam ekspresi regulerjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
Karena itu, karakter khusus menjadi masalah ketika Anda ingin mengganti semua operasi. Ini sebuah contoh
javascript
const search = '+';
const searchRegExp = new RegExp[search, 'g']; // Throws SyntaxError
const replaceWith = '-';
const result = '5+2+1'.replace[searchRegExp, replaceWith];
Coba demonya
Cuplikan di atas mencoba mengubah string pencarian
1 menjadi ekspresi reguler. Tapijavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
_1 adalah ekspresi reguler yang tidak valid, sehinggajavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
3 dilemparkanjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
Melarikan diri dari karakter
_4 memecahkan masalah. Coba demo tetapjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
2. 2 ganti[] dengan string
Jika argumen pertama
3 darijavascript
const resultingString = pieces.join[replace];
6 adalah sebuah string, maka metode ini hanya menggantikan kejadian pertama darijavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
3javascript
const resultingString = pieces.join[replace];
javascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace[search, replace];
console.log[result]; // => 'duck-duck go'
Coba demonya
_8 hanya menggantikan tampilan pertama ruangjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
3. metode replaceAll[]
Terakhir, metode
9 menggantikan semua tampilanjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
3 string denganjavascript
const resultingString = pieces.join[replace];
5javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
Mari ganti semua kemunculan
_5 denganjavascript
const resultingString = pieces.join[replace];
6javascript
const resultingString = pieces.join[replace];
javascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.replaceAll[search, replaceWith];
console.log[result]; // => 'duck-duck-go'
Coba demonya
_4 mengganti semua kemunculan stringjavascript
const search = '+';
const searchRegExp = new RegExp[search, 'g']; // Throws SyntaxError
const replaceWith = '-';
const result = '5+2+1'.replace[searchRegExp, replaceWith];
5 denganjavascript
const resultingString = pieces.join[replace];
6javascript
const resultingString = pieces.join[replace];
_9 adalah cara terbaik untuk mengganti semua kemunculan string dalam sebuah stringjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
Perhatikan bahwa browser untuk metode ini saat ini terbatas, dan Anda mungkin memerlukan polyfill
3. 1 Perbedaan antara replaceAll[] dan replace[]
Metode string
8 danjavascript
const search = '+';
const searchRegExp = new RegExp[search, 'g']; // Throws SyntaxError
const replaceWith = '-';
const result = '5+2+1'.replace[searchRegExp, replaceWith];
9 bekerja dengan cara yang sama, kecuali 2 haljavascript
const search = '+';
const searchRegExp = new RegExp[search, 'g']; // Throws SyntaxError
const replaceWith = '-';
const result = '5+2+1'.replace[searchRegExp, replaceWith];
- Jika
_3 argumen adalah string,javascript
const resultingString = pieces.join[replace];
1 mengganti semua kemunculanjavascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace[search, replace];
console.log[result]; // => 'duck-duck go'
3 denganjavascript
const resultingString = pieces.join[replace];
5, sedangkanjavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
6 hanya mengganti kemunculan pertamajavascript
const search = ' ';
const replaceWith = '-';
const result = 'duck duck go'.split[search].join[replaceWith];
console.log[result]; // => 'duck-duck-go'
- Jika
3 argumen adalah ekspresi reguler non-global, makajavascript
const resultingString = pieces.join[replace];
1 melontarkan pengecualianjavascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace[search, replace];
console.log[result]; // => 'duck-duck go'
7javascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace[search, replace];
console.log[result]; // => 'duck-duck go'
4. Pengambilan kunci
Pendekatan pertama untuk mengganti semua kejadian adalah membagi string menjadi potongan-potongan dengan string pencarian dan kemudian menggabungkan kembali string, menempatkan string pengganti di antara potongan-potongan tersebut.
8. Pendekatan ini berhasil, tetapi hackyjavascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace[search, replace];
console.log[result]; // => 'duck-duck go'
Pendekatan lain adalah menggunakan
_9 dengan ekspresi reguler yang mengaktifkan flag globaljavascript
const search = ' ';
const replace = '-';
const result = 'duck duck go'.replace[search, replace];
console.log[result]; // => 'duck-duck go'
Sayangnya, Anda tidak dapat dengan mudah membuat ekspresi reguler dari string saat runtime, karena karakter khusus ekspresi reguler harus di-escape
Terakhir, metode string
_9 menggantikan semua kejadian stringjavascript
const searchRegExp = /duck/gi;
const replaceWith = 'goose';
const result = 'DUCK Duck go'.replace[searchRegExp, replaceWith];
result; // => 'goose goose go'
Saya sarankan menggunakan string. replaceAll[] untuk mengganti string
Apa cara lain untuk mengganti semua kemunculan string yang Anda ketahui?
Suka postingannya?
Sarankan Perbaikan
Posting berkualitas ke kotak masuk Anda
Saya secara teratur menerbitkan posting yang berisi
- Konsep penting JavaScript dijelaskan dengan kata-kata sederhana
- Ikhtisar fitur JavaScript baru
- Cara menggunakan TypeScript dan mengetik
- Desain perangkat lunak dan praktik pengkodean yang baik
Berlangganan buletin saya untuk mengirimkannya langsung ke kotak masuk Anda
LanggananBergabunglah dengan 6943 pelanggan lainnya
Tentang Dmitri Pavlutin
Penulis dan pelatih teknologi. Rutinitas harian saya terdiri dari [namun tidak terbatas] minum kopi, coding, menulis, coaching, mengatasi kebosanan 😉