Python Regex: Pencocokan Pola dengan Modul re

Kuasai Ekspresi Reguler (Regex) dengan Python. Pelajari cara mencari, mencocokkan, membagi, dan mengganti data string menggunakan pustaka re bawaan.

Coba di Editor

Ikhtisar

Ekspresi Reguler (sering disingkat menjadi regex) adalah bahasa mini yang digunakan untuk pencarian teks tingkat lanjut, pencocokan string, dan manipulasi. Daripada memeriksa nilai string sederhana, regex memungkinkan Anda menentukan pola kompleks untuk dicari di dalam kumpulan teks yang sangat besar. Misalnya, menemukan semua alamat email, nomor telepon, atau URL dalam dokumen mudah untuk diungkapkan dalam regex, namun sangat rumit untuk ditulis menggunakan metode string normal.

Python menyediakan dukungan bawaan untuk ekspresi reguler melalui modul `re`. Modul ini mencakup fungsi penting seperti `re.search()` untuk menemukan kecocokan pertama, `re.findall()` untuk mengambil semua substring yang cocok sebagai daftar, dan `re.finditer()` untuk melakukan iterasi pada objek yang cocok. Setiap objek pencocokan menyediakan metadata, seperti indeks posisi awal dan akhir yang tepat dari substring yang cocok, dan teks yang cocok itu sendiri.

Pola regex menggunakan metakarakter khusus: `\d` cocok dengan digit apa pun, `\w` cocok dengan karakter alfanumerik, `+` cocok dengan satu atau lebih pengulangan, dan tanda kurung `[...]` menentukan rangkaian karakter. Pengelompokan dengan tanda kurung `(...)` memungkinkan Anda mengekstrak bagian tertentu dari suatu pola. Selain itu, `re.sub()` memungkinkan Anda mencari pola dan menggantinya dengan string baru. Meskipun regex memiliki kurva pembelajaran yang curam, menguasainya akan memberi Anda alat yang sangat cepat dan serbaguna untuk pemrosesan teks.

Kode & Output Eksekusi

Menggunakan modul re untuk memvalidasi dan mengekstrak komponen alamat email.

regex_demo.py
Coba di Editor
import re

text = "Contact support at info@pyrun.xyz or developer@pyrun.xyz today."

# Pattern to match email addresses
email_pattern = r"([a-zA-Z0-9._%+-]+)@([a-zA-Z0-9.-]+\.[a-zA-Z]{2,})"

# Find all matches
emails = re.findall(email_pattern, text)
print("Emails found:")
for user, domain in emails:
    print(f"User: {user} | Domain: {domain}")

# Redacting emails using re.sub
redacted_text = re.sub(email_pattern, "[REDACTED]", text)
print(f"\nRedacted Text:\n{redacted_text}")
Keluaran Terminal
Emails found:
User: info | Domain: pyrun.xyz
User: developer | Domain: pyrun.xyz

Redacted Text:
Contact support at [REDACTED] or [REDACTED] today.

Implementasi Langkah demi Langkah

  • Memvalidasi input format (email, telepon, kata sandi)
  • Mengurai log akses server untuk kode status
  • Mengikis informasi dari HTML mentah dan laporan penurunan harga

Pertanyaan yang Sering Diajukan

Apa pentingnya awalan 'r' dalam pola regex?

Ini menunjukkan 'string mentah'. String mentah memperlakukan garis miring terbalik (\) sebagai karakter literal, bukan karakter escape, menghindari konflik sintaksis dengan wildcard regex.

Apa perbedaan antara re.match dan re.search?

re.match hanya memeriksa kecocokan yang dimulai dari awal string, sementara re.search memindai seluruh string untuk mencari kecocokan.

Topik Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.