63. PYTHON (Regex) – Regular Expression

Belajar Bahasa Python Lengkap

Regular Expression

Regular expression adalah alat yang powerful untuk berbagai jenis manipulasi string. Regular expression adalah sebuah domain specific language (DSL) yang hadir sebagai sebuah library pada kebanyakan bahasa pemrograman, bukan hanya pada python.

Ada 2 tugas utama dari regex:

  • Memverifikasi kecocokan string
    contoh: sebuah string memiliki format sebuah alamat email.
  • Melakukan subtitusi di dalam sebuah string
    contoh: mengganti semua ejaan American ke British.

Private domain-specific language biasanya digunakan untuk tujuan industri yang lebih spesifik. Regex dalam python dapat diakses menggunakan modul re, dimana itu adalah bagian dari library standar.

Setelah kita mendefiniskan regex, fungsi re.match dapat digunakan untuk menentukan apakah cocok dengan awal sebuah string. Jika cocok, match mengembalikan sebuah objek yang merepresentasikan kecocokan. Dan jika tidak maka akan mengembalikan None.

Untuk mencegah kebingungan ketika bekerja dengan regex, kita gunakan raw string dengan r”expression”.

import re

pattern = r"kerbau"

if re.match(pattern, "kerbaukerbau"):
    print("Cocok")
else:
    print("Tidak Cocok")
=====>
Cocok
=====>

Di atas adalah contoh untuk mencocokkan string. Jika pattern “kerbau” cocok, maka akan mencetak output “Cocok”.

Fungsi lain untuk mencocokkan pola adalah re.search and re.findall. Fungsi re.search menemukan sebuah kecocokan sebuah pola dimanapun di dalam string. Fungsi re.findall mengembalikan sebuah list dari semua substring yang cocok dengan sebuah pola.

import re

pola = r"spam"

if re.match(pola, "eggsspamsausagespam"):
    print("Cocok")
else:
    print("Tidak Cocok")

if re.search(pola, "eggsspamsausagespam"):
    print("Cocok")
else:
    print("Tidak Cocok")

print(re.findall(pola, "eggsspamsausagespam"))
=====>
 Tidak Cocok
 Cocok
 ['spam', 'spam'] 
=====>

Pada contoh di atas, fungsi match tidak cocok dengan pola, seperti yang dapat kita lihat pada awal string. Dan fungsi search menemukan sebuah kecocokan di dalam string.

Fungsi re.finditer mirip dengan re.findall. Hanya saja re.finditer mengembalikan sebuah iterasi, bukan sebuah list. Regex search mengembalikan sebuah objek dengan beberapa method beserta detailnya.

Method-method tersebut berisi group dimana mengembalikan string yang cocok, start and end dimana mengembalikan posisi awal dan akhir, dan span yang mengembalikan posisi awal dan akhir yang berupa tuple.

import re

cari = r"tidak"

cocok = re.search(cari, "hariinitidakhujan")

if cocok:
    print(cocok.group())
    print(cocok.start())
    print(cocok.end())
    print(cocok.span())
=====>
 tidak
 7
 12
 (7, 12) 
=====>

Search & Replace

Salah satu yang paling panting dari method re yang menggunakan regex adalah sub.

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

Method ini mengganti semua pada atribut pattern di dalam string dengan atribut repl, mengganti semua kejadian, kecuali diberikan count. Method ini mengembalikan string yang sudah dimodifikasi.

import re

str = "Nama saya Zakky. Zakky was here."

cari = r"Zakky"
ganti = re.sub(cari, "Jack", str)
print(ganti)


LANJUTKAN BACA MATERI LENGKAP


Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.