Cara Menggunakan Ekspresi Reguler (Regex) dengan Python
Kuasai ekspresi reguler Python menggunakan modul re bawaan. Pelajari pencocokan string, pencarian pola, menemukan semua kemunculan, dan penggantian teks.
Ikhtisar
Ekspresi reguler, umumnya dikenal sebagai regex, adalah templat canggih yang digunakan untuk mencocokkan, mencari, dan memanipulasi string teks berdasarkan pola tertentu. Regex banyak digunakan untuk verifikasi email, validasi nomor telepon, pengikisan web, penguraian log, dan tugas mencari dan mengganti teks. Python menyediakan kemampuan regex penuh melalui modul `re` bawaan.
Modul `re` menawarkan beberapa fungsi utama tergantung pada tujuan Anda. Fungsi `re.search(pattern, string)` memindai string dan mengembalikan objek yang cocok untuk kemunculan pola yang pertama. Fungsi `re.match(pattern, string)` serupa tetapi hanya mencari dari awal string. Jika Anda ingin mengambil semua contoh pola dalam blok teks, `re.findall(pattern, string)` akan mengembalikannya sebagai daftar string.
Pola regex menggunakan metakarakter khusus seperti `\d` untuk angka, `\w` untuk karakter alfanumerik, `+` untuk satu atau lebih kemunculan, dan `*` untuk nol atau lebih. Saat menulis regex dengan Python, merupakan praktik standar untuk menggunakan literal string mentah (diawali dengan `r`, seperti `r"\d+"`) untuk mencegah Python memperlakukan garis miring terbalik sebagai rangkaian escape.
Kode & Output Eksekusi
Skrip ini mendemonstrasikan validasi struktur format, mengekstraksi token numerik, dan mengganti pola yang cocok menggunakan modul re.
import re
# 1. Searching for a pattern in text
log_message = "ERROR: Connection timeout at 04:30:15 on port 8080"
pattern_port = r"port \d+"
match = re.search(pattern_port, log_message)
if match:
print("Found port pattern:", match.group())
# 2. Extracting all email addresses from a block of text
text = "Contact sales@pyrun.xyz or support@example.com for help."
pattern_email = r"[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}"
emails = re.findall(pattern_email, text)
print("Extracted emails:", emails)
# 3. Replacing patterns using re.sub
date_string = "2026/05/25"
# Replace slashes with dashes
clean_date = re.sub(r"/", "-", date_string)
print("Replaced Date:", clean_date)Found port pattern: port 8080
Extracted emails: ['sales@pyrun.xyz', 'support@example.com']
Replaced Date: 2026-05-25Implementasi Langkah demi Langkah
- Impor modul re bawaan.
- Tentukan pola pencarian regex menggunakan string mentah, seperti r"\d+" untuk menghindari masalah escape sequence.
- Gunakan re.search() untuk menemukan kemunculan pertama atau re.findall() untuk mengumpulkan semua substring yang cocok.
- Gunakan re.sub(pattern, replacement, string) untuk melakukan penggantian berbasis pola di dalam teks.
Pertanyaan yang Sering Diajukan
Apa manfaat menggunakan string mentah (r"...") untuk pola regex?
String mentah memperlakukan garis miring terbalik sebagai karakter literal, bukan karakter escape. Misalnya, r"\n" mewakili garis miring terbalik diikuti dengan "n", sedangkan "\n" mewakili karakter baris baru.
Bagaimana cara memeriksa apakah pencocokan regex berhasil?
re.search() dan re.match() mengembalikan objek yang cocok jika berhasil, atau Tidak Ada jika tidak ditemukan kecocokan. Anda harus memeriksa hasilnya menggunakan pernyataan kondisional (misalnya, jika cocok :).
Topik Terkait
Pelajari cara mengganti karakter atau substring dalam string Python. Kuasai metode replace(), batas hitungan, dan penggunaan terjemahan untuk banyak karakter.
Cara Memisahkan String dengan PythonPelajari cara membagi string menjadi daftar dengan Python menggunakan metode split(). Jelajahi pemisahan berdasarkan spasi, koma, baris baru, dan batasi jumlah pemisahan.
Sumber Daya Python yang Direkomendasikan
Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.
Loop Python
Pelajari cara menggunakan loop Python untuk melakukan iterasi pada data. Kuasai perulangan for, perulangan while, hancurkan, lanjutkan, dan ulangi praktik terbaik dengan contoh interaktif.
Lembar
Panduan referensi lengkap untuk manipulasi string Python. Kuasai pemformatan, pencarian, pemisahan, penggantian, dan pemeriksaan properti string.
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.