Modul re: search, match, findall, sub
re.search(), re.match(), re.findall(), re.sub(), re.compile() untuk prestasi.
Modul re: search, match, findall, sub ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.
Modul re
Python menyediakan regex melalui modul terbina dalam re. Fungsi terasnya ialah search, match, findall dan sub.
Mengetahui fungsi yang sesuai digunakan ialah separuh daripada usaha.
import re # always import it firstre.search — Cari di Mana-mana
re.search(pattern, text) mengimbas seluruh rentetan untuk mencari padanan pertama dan mengembalikan objek Match, atau None jika tiada padanan.
import re
m = re.search("\d+", "order 42 shipped")
if m:
print(m.group()) # "42"
print(m.start()) # 6re.match — Berpaut pada Permulaan
re.match hanya sepadan pada permulaan rentetan. Jika corak tidak berada pada kedudukan 0, fungsi ini mengembalikan None walaupun corak itu muncul kemudian.
import re
print(re.match("\d+", "42 items")) # matches "42"
print(re.match("\d+", "items 42")) # Nonesearch berbanding match
Perbezaan utamanya:
match— corak mesti bermula pada indeks 0search— corak boleh muncul di mana-mana
Kebanyakan masa, anda memerlukan search. Gunakan match hanya apabila anda benar-benar perlu menyemak awalan.
re.findall — Dapatkan Setiap Padanan
re.findall mengembalikan senarai semua padanan yang tidak bertindih sebagai rentetan (bukan objek Match). Fungsi ini sesuai untuk tugasan pengekstrakan.
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 Kumpulan
Jika corak anda mempunyai kumpulan tangkapan, findall mengembalikan bahagian yang ditangkap dan bukannya keseluruhan padanan — sesuatu yang sering mengejutkan.
Di sini setiap tupel menyimpan kod kawasan dan bakinya.
import re
print(re.findall("(\d{3})-(\d{4})", "555-1234 and 999-8765"))
# [("555", "1234"), ("999", "8765")]re.finditer — Objek Padanan
Apabila anda memerlukan kedudukan atau kumpulan bagi setiap padanan, gunakan re.finditer. Fungsi ini menghasilkan objek Match yang boleh anda lelar secara malas.
import re
for m in re.finditer("\d+", "a1 b22 c333"):
print(m.group(), "at", m.start())re.sub — Cari dan Ganti
re.sub(pattern, replacement, text) menggantikan setiap padanan dengan rentetan pengganti dan mengembalikan rentetan baharu.
Asas penting untuk pembersihan teks — menyamarkan, menyeragamkan dan menanggalkan.
import re
clean = re.sub("\d+", "#", "Room 101 and 202")
print(clean) # "Room # and #"sub dengan Rujukan Balik dan Fungsi
Pengganti boleh merujuk kumpulan yang ditangkap dengan \1, atau berupa fungsi untuk logik dinamik.
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 — Guna Semula Corak
Apabila anda menggunakan sesuatu corak berkali-kali (contohnya dalam gelung), re.compile membinanya sekali menjadi objek corak yang boleh digunakan semula. Cara ini lebih pantas dan kodnya mudah dibaca.
import re
num = re.compile("\d+")
for line in ["a1", "b22", "c333"]:
print(num.findall(line))Bendera Berguna
Bendera mengubah tingkah laku pemadanan:
re.IGNORECASE— tidak peka huruf besar kecilre.MULTILINE—^/$sepadan dengan setiap barisre.DOTALL—.turut sepadan dengan baris baharu
import re
print(re.findall("cat", "Cat CAT cat", re.IGNORECASE))
# ["Cat", "CAT", "cat"]Semakan Pantas: search berbanding findall
Anda memerlukan senarai setiap nombor telefon yang muncul di mana-mana dalam dokumen.
Imbas Kembali: Modul re
Sekarang anda mengetahui fungsi teras regex:
re.search— padanan pertama di mana-mana (objek Match)re.match— padanan hanya pada permulaanre.findall— senarai semua padanan (kumpulan mengubah output)re.finditer— objek Match dengan kedudukanre.sub— menggantikan padanan, dengan rujukan balik atau fungsire.compiledan bendera untuk penggunaan semula serta kawalan
Seterusnya: kumpulan tangkapan dan kumpulan bernama.
Pelajari Python dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 53
- Pelajaran
- 225
Soalan Lazim
Adakah pelajaran “Modul re: search, match, findall, sub” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “Modul re: search, match, findall, sub”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Modul re: search, match, findall, sub”?
re.search(), re.match(), re.findall(), re.sub(), re.compile() untuk prestasi. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?
Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.
Berapa lamakah pelajaran “Modul re: search, match, findall, sub” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?
Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Corak Regex dan Kelas Aksara
- Modul re: search, match, findall, sub
- Kumpulan Tangkapan dan Kumpulan Bernama
- Pembersihan Teks untuk Kecerdasan Buatan dengan Regex