Rumah >pembangunan bahagian belakang >Tutorial Python >Bolehkah Python Regex Menangkap Subcorak Berulang dengan Berkesan?
Merakam Subcorak Berulang dalam Python Regex
Apabila memadankan corak kompleks, menangkap subcorak berulang boleh meningkatkan prestasi regex. Walaupun ungkapan biasa Python mempunyai had dalam mengulang tangkapan, terdapat penyelesaian untuk menangkap corak yang diingini dengan berkesan.
Pemisahan dan Penggabungan
Satu pendekatan, yang dicadangkan dalam jawapan yang disediakan, ialah untuk memadankan keseluruhan corak pada mulanya dan membahagikan subcorak kemudian. Pendekatan ini memudahkan regex tetapi memerlukan langkah tambahan untuk pemisahan. Sebagai contoh, pertimbangkan padanan alamat e-mel:
import re pattern = r'(.+?)@(\w+\.\w+)' text = "yasar@webmail.something.edu.tr" match = re.match(pattern, text) if match: email_address, domain = match.groups() subdomains = domain.split(".")
Kumpulan Regex
Jika coraknya lebih kompleks dan subcorak mempunyai ciri yang berbeza, kumpulan regex (iaitu, kurungan ) boleh digunakan untuk menangkapnya secara langsung. Pertimbangkan corak berikut:
pattern = r'(\w+)?\((\d+) entries?\)'
Corak ini sepadan dengan perkataan dan ungkapan kurungan pilihan yang mengandungi nombor dan teks "entri" (atau "entri"). Kumpulan yang ditangkap boleh diakses melalui objek perlawanan:
text = "Received 10 entries for yesterday" match = re.match(pattern, text) if match: word, count = match.groups() if word: print("Word:", word) if count: print("Count:", count)
Pendekatan ini membolehkan penangkapan terus subcorak tanpa memerlukan rutin pemisahan yang kompleks.
Atas ialah kandungan terperinci Bolehkah Python Regex Menangkap Subcorak Berulang dengan Berkesan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!