Grup Penangkap dan Grup Bernama
Tanda kurung untuk penangkapan, grup bernama (?P ...), re.fullmatch(), lookahead/lookbehind.
Grup Penangkap dan Grup Bernama adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 3 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.
Mengapa Menggunakan Kelompok?
Kelompok memungkinkan Anda memisahkan bagian-bagian kecocokan sehingga dapat mengekstrak bagian yang tepat — kode area dari nomor telepon, tahun dari tanggal, atau nama pengguna dari surel.
Pelajaran ini membahas kelompok penangkap, kelompok bernama, kelompok tanpa penangkapan, dan pencarian di sekitar.
Kelompok Penangkap dengan ( )
Bungkus sebagian pola dalam tanda kurung untuk menangkapnya. Seluruh kecocokan beserta setiap kelompok dapat diakses pada objek Match.
import re
m = re.search("(\d{4})-(\d{2})-(\d{2})", "Date: 2026-05-29")
print(m.group()) # "2026-05-29" (whole match)
print(m.group(1)) # "2026"
print(m.group(2)) # "05"match.group, groups, groupdict
Akses yang berguna:
m.group(0)— seluruh kecocokanm.group(n)— tangkapan ke-nm.groups()— tupel semua tangkapan
import re
m = re.search("(\d{4})-(\d{2})-(\d{2})", "2026-05-29")
print(m.groups()) # ("2026", "05", "29")
year, month, day = m.groups()Kelompok Bernama dengan (?P<name>...)
Pemberian nomor pada kelompok mudah menjadi rapuh. Kelompok bernama menggunakan (?P<name>...) sehingga Anda merujuk tangkapan dengan nama yang bermakna.
import re
m = re.search("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", "2026-05-29")
print(m.group("year")) # "2026"
print(m.group("month")) # "05"groupdict untuk Keluaran Terstruktur
m.groupdict() mengembalikan semua kelompok bernama sebagai kamus — sangat cocok untuk mengubah teks yang cocok menjadi catatan terstruktur.
import re
m = re.search("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", "2026-05-29")
print(m.groupdict())
# {"year": "2026", "month": "05", "day": "29"}Kelompok Tanpa Penangkapan (?:...)
Terkadang Anda memerlukan tanda kurung hanya untuk mengelompokkan (misalnya untuk menerapkan kuantifier), tetapi TIDAK ingin melakukan penangkapan. Gunakan (?:...).
Dengan begitu, penomoran kelompok tetap rapi.
import re
# Group "ab" so + applies, but do not capture it
m = re.search("(?:ab)+(\d+)", "ababab42")
print(m.group(1)) # "42" -> group 1 is the digits, not "ab"Referensi Balik
Referensi balik \1 mencocokkan teks yang sama dengan yang sebelumnya ditangkap oleh suatu kelompok. Ini berguna untuk menemukan kata yang berulang.
import re
# Find a word repeated twice in a row
print(re.findall("(\w+) \1", "the the cat cat sat"))
# ["the", "cat"]Pemeriksaan ke depan (?=...)
Pemeriksaan ke depan positif (?=...) menyatakan apa yang harus mengikuti, tanpa mengonsumsinya. Teks yang ditegaskan bukan bagian dari kecocokan.
Di sini, kita mencocokkan angka hanya jika diikuti oleh "px".
import re
print(re.findall("\d+(?=px)", "10px 20em 30px"))
# ["10", "30"] -> "20" skipped (not followed by px)Pemeriksaan ke depan negatif (?!...)
Pemeriksaan ke depan negatif (?!...) menyatakan apa yang tidak boleh mengikuti. Cocokkan angka hanya jika tidak diikuti oleh "px".
import re
print(re.findall("\d+(?!px)", "10px 20em 30px"))
# matches numbers not followed directly by pxPemeriksaan ke belakang (?<=...) dan (?<!...)
Pemeriksaan ke belakang menyatakan apa yang muncul sebelum kecocokan tanpa mengonsumsinya:
(?<=...)positif — harus didahului oleh(?<!...)negatif — tidak boleh didahului oleh
Di sini, kita mengambil jumlah yang didahului oleh tanda dolar, tanpa menangkap tandanya.
import re
print(re.findall("(?<=\$)\d+", "price $50 and 60 units"))
# ["50"] -> only the amount after $Menggabungkan Grup dan Pemeriksaan di Sekitar
Ekstraktor nyata menggabungkan alat-alat ini. Pola ini mengambil harga dengan nama yang harus didahului oleh simbol mata uang dan diikuti oleh bagian desimal:
import re
text = "Total: $1299.99 paid"
m = re.search("(?<=\$)(?P<amount>\d+)\.(?P<cents>\d{2})", text)
print(m.group("amount"), m.group("cents")) # 1299 99Pemeriksaan Singkat: Grup Bernama
Anda ingin mengambil kecocokan berdasarkan nama yang mudah dibaca seperti "year", bukan berdasarkan angka.
Ringkasan: Grup dan Pemeriksaan di Sekitar
Sekarang Anda dapat mengambil struktur yang tepat dari teks:
( )grup penangkap denganm.group(n)danm.groups()(?P<name>...)grup bernama denganm.groupdict()(?:...)grup tanpa penangkapan untuk pengelompokan yang rapi- Referensi balik
\1untuk pengulangan - Pemeriksaan ke depan
(?=)/(?!)dan pemeriksaan ke belakang(?<=)/(?<!)
Berikutnya: menggabungkan semuanya untuk membersihkan teks bagi kecerdasan buatan.
Belajar Python dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 53
- Pelajaran
- 225
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Grup Penangkap dan Grup Bernama” gratis?
Ya — teks lengkap “Grup Penangkap dan Grup Bernama” 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 “Grup Penangkap dan Grup Bernama”?
Tanda kurung untuk penangkapan, grup bernama (?P ...), re.fullmatch(), lookahead/lookbehind. 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 3 dari 4.
Berapa lama pelajaran “Grup Penangkap dan Grup Bernama” 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