Python re.sub() dan re.subn() Method

re.sub()

Metoda sub digunakan untuk melakukan replacement pada string targer berdasarkan pattern yang diberikan.

re.sub(pattern, replacament_string, string_target, count, flags)

Agak berbeda dari metoda sebelumnya, re.sub() terdapat parameter

  • replacement_string: string untuk mengganti string_target ketika match ditemukan.
  • count: default 0, yaitu setiap match akan dilakukan replacement.
  • flags: optional, parameter ini ada juga pada metoda sebelumnya, akan dibahas pada modul terpisah.

Berikut contoh penggunaan sub dengan skenario mengganti semua kata berhuruf besar dengan panjang minimal 2 dengan kata INDEX.

str = "Pergerakan Harga STOK saham Indonesia dapat dilihat secara global melalui harga STOKS saham gabungan"
pattern = r"[A-Z]{2,}"

result = re.sub(pattern, "INDEX", str)
result
'Pergerakan Harga INDEX saham Indonesia dapat dilihat secara global melalui harga INDEX saham gabungan'

Berikut contoh dengan menggunakan parameter count, misalnya kita hanya ingin melakukan 1 kali replacement. Hanya kata STOK pertama yang direplace.

pattern = r"[A-Z]{2,}"

result = re.sub(pattern, "INDEX", str, 1)
result
'Pergerakan Harga INDEX saham Indonesia dapat dilihat secara global melalui harga STOKS saham gabungan'

Berikut jika tidak terjadi match, maka tidak terjadi replacement pada target string.

pattern = r"[A-Z]{6}"

result = re.sub(pattern, "INDEX", str)
result
'Pergerakan Harga STOK saham Indonesia dapat dilihat secara global melalui harga STOKS saham gabungan'

re.subn()

Perbedaan subn adalah result berupa tuple yang berisi string hasil replacement dan jumlah replacement yang terjadi.

str = "Pergerakan Harga STOK saham Indonesia dapat dilihat secara global melalui harga STOKS saham gabungan"
pattern = r"[A-Z]{2,}"

result = re.subn(pattern, "INDEX", str)
result
('Pergerakan Harga INDEX saham Indonesia dapat dilihat secara global melalui harga INDEX saham gabungan', 2)

SIlakan bereksperimen dengan mengganti pattern untuk melihat return tuple jika pattern tidak ditemukan, atau jika parameter count digunakan.

Sharing is caring:

Leave a Comment