0Pricing
Python Academy · Pelajaran

re.sub, Flag, dan Pola Terkompilasi

Ganti teks, gunakan flag seperti IGNORECASE, dan kompilasikan pola untuk digunakan kembali.

re.sub, Flag, dan Pola Terkompilasi adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 4 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 Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.

Pendahuluan

re.sub mengganti kecocokan. Flag mengubah perilaku pencocokan. Pola yang dikompilasi efisien untuk penggunaan berulang.

Dasar re.sub

re.sub(pattern, repl, string) mengganti semua kecocokan dengan repl. Argumen ke-4 count= membatasi jumlah penggantian.
import re
result = re.sub(r'\d+', 'X', 'abc 123 def 456')
print(result)

re.sub dengan Grup

Gunakan \1, \2, atau \g<1> dalam penggantian untuk menyisipkan grup yang ditangkap. Gunakan \g untuk grup bernama.
import re
# Swap first and last name
result = re.sub(r'(\w+),\s*(\w+)', r'\2 \1', 'Smith, John')
print(result)

re.sub dengan Fungsi

Penggantian dapat berupa callable: f(match) → string pengganti. Ini memungkinkan transformasi yang kompleks.
import re
def double_num(m): return str(int(m.group())*2)
result = re.sub(r'\d+', double_num, '1 cats and 2 dogs')
print(result)

re.IGNORECASE (re.I)

Membuat pola tidak membedakan huruf besar dan kecil. r'hello' dengan re.I mencocokkan 'HELLO', 'Hello', dan sebagainya.
import re
print(re.findall(r'hello', 'Hello HELLO hello', re.I))

re.MULTILINE (re.M)

Membuat ^ dan $ mencocokkan awal/akhir setiap LINE, bukan keseluruhan string.
import re
text = 'first\nsecond\nthird'
print(re.findall(r'^\w+', text, re.M))

re.DOTALL (re.S)

Membuat . juga mencocokkan baris baru. Tanpanya, . berhenti pada batas baris.
import re
text = 'line1\nline2'
print(re.search(r'line1.line2', text, re.S).group())

re.VERBOSE (re.X)

Memungkinkan komentar dan spasi kosong dalam pola agar lebih mudah dibaca. Spasi diabaikan; gunakan \ + spasi untuk spasi literal.
import re
pattern = re.compile(r'''
    (?P<year>\d{4})   # year
    -
    (?P<month>\d{2}) # month
    -
    (?P<day>\d{2})   # day
''', re.X)
print(pattern.search('2024-01-15').groupdict())

Menggabungkan Flag

Gabungkan flag dengan |: re.I | re.M. Atau gunakan flag sebaris (?im) di awal pola.
import re
print(re.findall(r'^\w+', 'Hello\nWorld', re.I | re.M))

re.compile untuk Kinerja

Kompilasi pola sekali dengan re.compile(). Panggil metode pada objek yang dikompilasi: pat.search(), pat.findall().
import re
email_re = re.compile(r'[\w.+-]+@[\w-]+\.[\w.]+')
emails = ['user@example.com', 'invalid', 'test@test.org']
print([e for e in emails if email_re.fullmatch(e)])

re.escape()

re.escape(string) meloloskan semua karakter khusus ekspresi reguler dalam string, sehingga string tersebut dapat digunakan sebagai pola literal.
import re
user_input = 'price.is $10+'
pattern = re.compile(re.escape(user_input))
text = 'The price.is $10+ today'
print(bool(pattern.search(text)))

Pemeriksaan Singkat

Flag mana yang membuat . mencocokkan baris baru dalam ekspresi reguler Python?

Ringkasan

re.sub: mengganti dengan string, grup, atau fungsi. Flag: re.I (huruf besar-kecil), re.M (multi-baris ^/$), re.S (titik mencocokkan \n), re.X (jelas). Kompilasi untuk digunakan kembali.

Lanjutkan

Kerja bagus! Pelajaran berikutnya sudah menanti.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “re.sub, Flag, dan Pola Terkompilasi” gratis?

Ya — teks lengkap “re.sub, Flag, dan Pola Terkompilasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “re.sub, Flag, dan Pola Terkompilasi”?

Ganti teks, gunakan flag seperti IGNORECASE, dan kompilasikan pola untuk digunakan kembali. Kamu berlatih Python Academy 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 Python Academy?

Tidak diperlukan pengalaman sebelumnya. Python Academy 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 4 dari 4.

Berapa lama pelajaran “re.sub, Flag, dan Pola Terkompilasi” 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 Python Academy ini?

Ya. Setiap pelajaran Python Academy 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

  1. Dasar-Dasar Regex
  2. Menggunakan re.match, re.search, re.findall
  3. Grup dan Capture Bernama
  4. re.sub, Flag, dan Pola Terkompilasi
← Kembali ke Python Academy