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.
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.
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}")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
Manipulasi string master dengan Python. Pelajari metode string, pemotongan, penggabungan, dan teknik pemformatan dengan contoh kode yang jelas dan dapat dieksekusi.
I/O File PythonPelajari cara membaca dan menulis file dengan Python. Kuasai open(), read(), write(), dan manajer konteks untuk menangani operasi file dengan aman tanpa kebocoran sumber daya.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Cara Mengurutkan Daftar dengan Python
Pelajari cara mengurutkan daftar dengan Python menggunakan metode sortir() dan fungsi sortir(). Temukan contoh pengurutan kunci khusus dan urutan terbalik.
Lembar
Panduan referensi untuk ekspresi reguler Python. Pelajari pola pencocokan, pencarian, temukan semua, sub, dan ekspresi reguler penting.
Python vs JavaScript: Bahasa Pemrograman Mana yang Terbaik?
Perbandingan komprehensif antara Python dan JavaScript. Jelajahi perbedaan sintaksis, kinerja, kasus penggunaan (backend vs frontend), dan contoh pengkodean.