Modul re: search, match, findall, sub
re.search(), re.match(), re.findall(), re.sub(), re.compile() untuk kinerja.
Modul re: search, match, findall, sub adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Modul re
Python menyediakan regex melalui modul bawaan re. Fungsi intinya adalah search, match, findall, dan sub.
Mengetahui fungsi mana yang harus digunakan merupakan setengah dari tantangan.
import re # always import it firstre.search — Menemukan di Mana Saja
re.search(pattern, text) memindai seluruh string untuk menemukan kecocokan pertama dan mengembalikan objek Match, atau None jika tidak ada yang cocok.
import re
m = re.search("\d+", "order 42 shipped")
if m:
print(m.group()) # "42"
print(m.start()) # 6re.match — Berjangkar di Awal
re.match hanya mencocokkan di awal string. Jika pola tidak berada di posisi 0, fungsi ini mengembalikan None meskipun pola tersebut muncul di bagian selanjutnya.
import re
print(re.match("\d+", "42 items")) # matches "42"
print(re.match("\d+", "items 42")) # Nonesearch vs match
Perbedaan utamanya:
match— pola harus dimulai pada indeks 0search— pola dapat muncul di mana saja
Dalam kebanyakan kasus, Anda memerlukan search. Gunakan match hanya jika Anda memang perlu memeriksa awalan.
re.findall — Mendapatkan Setiap Kecocokan
re.findall mengembalikan daftar semua kecocokan yang tidak saling tumpang tindih sebagai string (bukan objek Match). Fungsi ini ideal untuk tugas ekstraksi.
import re
emails = re.findall("\w+@\w+\.\w+", "a@x.com and b@y.org")
print(emails) # ["a@x.com", "b@y.org"]findall dengan Kelompok
Jika pola Anda memiliki kelompok penangkap, findall mengembalikan bagian yang ditangkap, bukan seluruh kecocokan — hal yang sering mengejutkan.
Di sini setiap tupel berisi kode area dan bagian lainnya.
import re
print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]re.finditer — Objek Match
Jika Anda memerlukan posisi atau kelompok untuk setiap kecocokan, gunakan re.finditer. Fungsi ini menghasilkan objek Match yang dapat Anda telusuri secara malas.
import re
for m in re.finditer("\d+", "a1 b22 c333"):
print(m.group(), "at", m.start())re.sub — Mencari dan Mengganti
re.sub(pattern, replacement, text) mengganti setiap kecocokan dengan string pengganti dan mengembalikan string baru.
Fungsi ini merupakan dasar pembersihan teks — penyamaran, penyeragaman, dan penghapusan.
import re
clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean) # "Room # and #"sub dengan Referensi Balik dan Fungsi
Pengganti dapat merujuk kelompok yang ditangkap dengan \1, atau berupa fungsi untuk logika dinamis.
import re
# Swap "first last" -> "last, first"
print(re.sub("(\w+) (\w+)", "\\2, \\1", "Ada Lovelace"))
# Function replacement: double each number
print(re.sub("\d+", lambda m: str(int(m.group()) * 2), "a1 b2"))re.compile — Menggunakan Kembali Pola
Saat Anda menggunakan pola berkali-kali (misalnya dalam pengulangan), re.compile membuatnya sekali menjadi objek pola yang dapat digunakan kembali. Cara ini lebih cepat dan menghasilkan kode yang rapi.
import re
num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
print(num.findall(line))Bendera yang Berguna
Bendera mengubah perilaku pencocokan:
re.IGNORECASE— tidak peka huruf besar-kecilre.MULTILINE—^/$mencocokkan setiap barisre.DOTALL—.juga mencocokkan baris baru
import re
print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]Pemeriksaan Singkat: search vs findall
Anda memerlukan daftar setiap nomor telepon yang muncul di mana saja dalam sebuah dokumen.
Rangkuman: Modul re
Sekarang Anda mengetahui fungsi inti regex:
re.search— kecocokan pertama di mana saja (objek Match)re.match— hanya mencocokkan di awalre.findall— daftar semua kecocokan (kelompok mengubah keluarannya)re.finditer— objek Match dengan posisire.sub— mengganti kecocokan, dengan referensi balik atau fungsire.compiledan bendera untuk penggunaan kembali dan pengendalian
Selanjutnya: kelompok penangkap dan kelompok bernama.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Modul re: search, match, findall, sub” gratis?
Ya — teks lengkap “Modul re: search, match, findall, sub” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Modul re: search, match, findall, sub”?
re.search(), re.match(), re.findall(), re.sub(), re.compile() untuk kinerja. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Modul re: search, match, findall, sub” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Pola Regex dan Kelas Karakter
- Modul re: search, match, findall, sub
- Grup Penangkap dan Grup Bernama
- Membersihkan Teks untuk Kecerdasan Buatan dengan Regex