Python mengganti pola dalam string

Catatan. Jika hitungan tidak ditentukan, metode replace() mengganti semua kemunculan substring lama dengan string baru


replace() Mengembalikan Nilai

Metode replace()_ mengembalikan salinan string tempat substring lama diganti dengan string baru. String asli tetap tidak berubah

Python memiliki modul ekspresi reguler bawaan yang disebut re yang memiliki berbagai fungsi untuk pola, karakter, karakter khusus, atau ekspresi

Tapi apa itu regex atau ekspresi reguler?

Apa itu regex?

Ekspresi reguler adalah urutan karakter yang membentuk pola penelusuran

Gunakan ekspresi reguler (regex) untuk memeriksa apakah suatu string berisi pola pencarian yang ditentukan

Apa manfaat menggunakan regex dengan Python?

Ada banyak manfaat menggunakan ekspresi reguler

  1. Menemukan string tertentu dalam teks yang lebih besar
  2. Memvalidasi bahwa string berisi format tertentu
  3. Mengganti teks pada posisi yang cocok
  4. Memisahkan string dalam kecocokan untuk membuat daftar, larik, dll

Cara mengganti regex dengan Python

Gunakan re. sub() metode untuk mengganti string yang cocok dengan regex alih-alih cocok dengan Python

Di sana. sub() adalah metode bawaan yang menerima maksimal lima argumen dan mengembalikan string yang diganti

Penggantian regex adalah pendekatan untuk melakukan pencarian sederhana dan mengganti operasi pada string. Itu dapat memodifikasi teks, mencari pola, dan melakukan tugas pemrosesan teks lainnya

Cara menggunakan re. sub() metode dengan Python

Python kembali. sub() fungsi dalam modul re dapat menggantikan substring

Untuk menggunakan metode sub(), pertama kita harus mengimpor modul re, dan kemudian kita dapat menggunakan metode sub() nya

Sintaksis

re.sub(pattern, repl, string, count=0, flags=0)

Pencarian sederhana dan ganti contoh dengan Python

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_

Pada contoh di atas, kita mencoba mengganti huruf kecil dari a ke z sebelum karakter @

Keluaran

[email protected]

Dari output, kita dapat melihat bahwa kita telah berhasil mengupdate alamat email

Jika kita menggunakan metode string replace() untuk mengganti string, string baru akan diganti agar cocok dengan string lama seluruhnya

Menentukan hitungan

Anda bisa melewatkan parameter hitungan dalam metode regex sub(). Ini menyarankan kepada kompiler agar jangan mengganti lebih dari nilai hitungan

import re 

str = '[email protected]' 

print(re.sub('[a-z]*@', 'ApD@', str, 2)) 

Keluaran

[email protected] [email protected] [email protected]
_

Keluaran menunjukkan bahwa itu hanya menggantikan dua alamat email, dan alamat terakhir adalah apa adanya

Mengganti banyak pola menggunakan regex

Gunakan regex untuk mengganti beberapa pola secara bersamaan menggunakan re. sub(pola_1. pattern_2, pengganti, string, count= 0 , flags= 0 ) .

import re

str = "biden-Putin Volodymir Modi Abe Jacinda"
print(re.sub("(\s) | (-)", ", ", str))

Kode di atas menggunakan fungsi sub() modul re untuk mengganti semua karakter spasi putih dan karakter tanda hubung dengan koma dan spasi pada string “biden-Putin Volodymir Modi Abe Jacinda”

Pola ekspresi reguler yang digunakan dalam argumen pertama fungsi sub() adalah “(\s). (-)”, yang cocok dengan karakter spasi putih atau tanda hubung. String penggantinya adalah “, ” (koma dan spasi)

Ketika kode dieksekusi, itu akan menampilkan string yang dimodifikasi. “biden, Putin, Volodymir, Modi, Abe, Jacinda”

Perlu dicatat bahwa tanda kurung dalam pola ekspresi reguler digunakan untuk mengelompokkan dua alternatif (spasi putih dan tanda hubung), dan. simbol digunakan untuk menentukan kondisi "atau".

Mengganti beberapa substring dengan string yang tepat

Anda dapat mengganti beberapa substring dengan string yang tepat dengan melampirkan string dengan [ ] untuk mencocokkan karakter tunggal apa pun

str = '[email protected] [email protected] [email protected]'

print(re.sub('[a-z]*@', 'info@', str))
_

Keluaran

[email protected] [email protected] [email protected]

Anda dapat melihat bahwa itu menggantikan string yang sama dengan banyak substring

Jika. membatasi pola, itu cocok dengan pola apa pun. Dan juga, dimungkinkan untuk menggunakan karakter khusus ekspresi reguler untuk setiap pola, tetapi tidak apa-apa bahkan jika string biasa ditentukan

Ini dapat digunakan untuk mengganti beberapa string berbeda dengan string yang sama

import re

str = '[email protected] [email protected] [email protected]'

print(re.sub('gmail|hotmail|apple', 'appdividend', str)) 
_

Pada kode di atas, kita memiliki sebuah string yang terdiri dari tiga substring

Kami mengganti salah satu dari tiga substring dengan appdividen. Itu akan menggantikan semua jika menemukan semua; . Jika menemukan satu kecocokan, maka itu akan menggantikan satu substring

Keluaran

[email protected] [email protected] [email protected]
_

Anda dapat melihat bahwa semua substring diganti dengan appdividend

Mari kita lihat skenario di mana hanya satu pola yang cocok

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_0

Keluaran

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_1

Anda dapat melihat bahwa bbb@amazon. com dan ccc@walmart. com tidak berubah

Hanya aaa@gmail. com diganti dengan aaa@appdividend. com

Mengganti string menggunakan bagian yang cocok

Untuk mengganti substring menggunakan bagian yang cocok, gunakan string yang cocok dengan bagian yang disertakan dalam () di string baru

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_2

Keluaran

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_3

\1 sesuai dengan bagian yang cocok dengan (). Jika ada banyak ( ), gunakan seperti \2, \3 …

Penting untuk menghindari \ seperti \\1 jika itu adalah string biasa yang dikelilingi oleh " atau " ", tetapi jika itu adalah string mentah dengan r di awal seperti r", Anda dapat menulis \1

Mengganti string dengan posisi menggunakan irisan

Tidak ada metode untuk menentukan posisi dan menggantinya;

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_4

Keluaran

import re 

str = '[email protected]'

print(re.sub('[a-z]*@', 'ApD@', str)) 
_5

Pada contoh kode di atas, Anda dapat melihat bahwa kami telah menambahkan substring antara indeks string 4 hingga 7

FAQ

Apa re. sub() fungsi dengan Python?

Di sana. fungsi sub() adalah bagian dari modul re, dan dapat mengganti semua kemunculan pola dalam sebuah string dengan string pengganti

Bagaimana saya bisa menggunakan ekspresi reguler untuk mengganti pola tertentu dalam sebuah string?

Gunakan re. sub() berfungsi untuk mengganti pola tertentu dalam sebuah string dengan memberikan pola ekspresi reguler sebagai parameter pertama dan string pengganti sebagai parameter kedua

Bagaimana saya bisa mengganti banyak pola dalam sebuah string menggunakan ekspresi reguler?

Gunakan multiple re. sub() pemanggilan fungsi untuk mengganti beberapa pola dalam sebuah string

Dapatkah saya menggunakan karakter khusus seperti. atau *, dalam pola ekspresi reguler?

Ya, karakter khusus seperti. dan * memiliki arti khusus dalam ekspresi reguler dan dapat digunakan untuk mencocokkan pola tertentu

Bagaimana Anda mengganti pola dalam string dengan Python?

Untuk mengganti string dengan Python, metode regex sub() digunakan . Ini adalah metode Python bawaan dalam modul re yang mengembalikan string yang diganti. Jangan lupa untuk mengimpor modul re. Metode ini mencari pola dalam string dan kemudian menggantinya dengan ekspresi baru yang diberikan.

Bagaimana Anda mengganti pola dalam sebuah string?

Tali. prototipe. replace() Metode replace() mengembalikan string baru dengan satu, beberapa, atau semua kecocokan dari sebuah pola diganti dengan pengganti. Polanya bisa berupa string atau RegExp , dan penggantinya bisa berupa string atau fungsi yang dipanggil untuk setiap kecocokan.

Bagaimana cara mengganti bagian pencocokan pola dengan nilai lain di Python?

Ganti Metode. sub() metode modul 're' digunakan dalam Python untuk penggantian string. Di sini pola, ganti, dan string adalah argumen wajib. Jika pola cocok dengan bagian mana pun dari string maka itu akan mengganti bagian tersebut dengan nilai mengganti argumen .

Bagaimana Anda mengganti semua kemunculan pola regex dalam sebuah string?

Metode replaceAll() mengganti semua kemunculan String di String lain yang cocok dengan regex. Ini mirip dengan fungsi replace(), satu-satunya perbedaan adalah bahwa dalam replaceAll() String yang akan diganti adalah regex sedangkan dalam replace() itu adalah sebuah String.