Dalam pembangunan bahagian belakang, pemprosesan data dan pengekstrakan maklumat adalah sangat penting. Ungkapan biasa ialah pemprosesan data yang berkuasa dan alat pengekstrakan maklumat yang boleh membantu kami menjalankan pembangunan bahagian belakang dengan lebih cekap. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pembangunan back-end.
1. Pengetahuan asas tentang ungkapan biasa
Ekspresi biasa, juga dikenali sebagai regex, ialah alat untuk menerangkan corak aksara Ia boleh membantu kami menganalisis dan menganalisis sejumlah besar data teks sepadan dengan maklumat yang diperlukan.
Ekspresi biasa biasanya terdiri daripada aksara, pengendali dan aksara meta Aksara khas dan aksara meta boleh mewakili jenis aksara atau sejenis peraturan padanan. Berikut ialah senarai metakarakter ungkapan biasa biasa:
元字符 | 匹配的字符 | ||
---|---|---|---|
转义字符 | |||
. | 匹配除换行符以外的任意字符 | ||
^ | 匹配字符串的开始 | ||
$ | 匹配字符串的结束 | ||
[] | 字符集 | ||
[^] | 非字符集 | ||
* | 匹配前面的字符0次或多次 | ||
+ | 匹配前面的字符1次或多次 | ||
? | 匹配前面的字符0次或1次 | ||
{} | 匹配前面的字符指定次数 | ||
匹配 | 左边或右边的表达式 | ||
() | 匹配括号内的表达式,也表示捕获组 |
2. Aplikasi ungkapan biasa dalam Python
Python mempunyai modul semula terbina dalam, yang menyediakan sokongan ungkapan biasa yang lengkap. , yang boleh memudahkan pemprosesan data dan pengekstrakan maklumat.
Kita boleh menggunakan aksara meta d untuk memadankan nombor dan + untuk memadankan berbilang nombor:
import re text = "John has 2 apples, and Jane has 3 oranges." result = re.findall(r'd+', text) print(result)
Hasil output ialah :
['2', '3']
Kita boleh menggunakan [A-Za-z0-9._%+-]+ untuk memadankan nama pengguna e-mel, gunakan @[A -Za-z0-9.-]+.[A-Za-z]{2,} sepadan dengan nama domain e-mel:
import re text = "My email address is john@example.com." result = re.findall(r'[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+.[A-Za-z]{2,}', text) print(result)
Hasil output ialah:
['john@example.com']
kita boleh menggunakan 1+href="(.?)" 1 > Memadankan hiperpautan dalam HTML:
import re html = """ <a href="https://www.google.com">Google</a>, <a href="https://www.baidu.com">Baidu</a>, <a href="https://www.sogou.com">Sogou</a>, """ result = re.findall(r'<a[^>]+href="(.*?)"[^>]*>', html) print(result)
Hasil keluarannya ialah:
['https://www.google.com', 'https://www.baidu.com', 'https://www.sogou.com']
3. Kemahiran pengoptimuman ungkapan biasa
Walaupun biasa ungkapan sangat berkuasa, kecekapannya mungkin menjadi agak rendah apabila memproses data besar dan padanan yang kompleks. Oleh itu, kita perlu mengoptimumkan cara ungkapan biasa ditulis untuk mencapai kelajuan pemadanan yang lebih pantas.
Sebagai contoh, kita boleh menggunakan [A-Za-z0-9 ] bukannya [ A-Z]|[a-z]|[0-9], yang boleh mengurangkan bilangan aksara dalam ungkapan biasa dan mengoptimumkan kelajuan padanan.
Mod tamak merujuk kepada mod yang sepadan dengan seberapa banyak aksara yang mungkin. Contohnya, apabila memadankan "neraka" dalam rentetan "hello world", re.findall(r'he.l', text) akan memadankan "hello worl" kerana . rakus sepadan dengan "o wor", inilah hasil yang kita tidak mahu lihat. Untuk mengelakkan mod tamak, kita boleh menambah ? selepas . dan menggunakan mod malas, seperti re.findall(r'he.?l', teks).
Ungkapan biasa selalunya mengandungi garis miring ke belakang ( Jika rentetan mentah tidak digunakan, garis miring ke belakang akan ditafsirkan sebagai aksara yang terlepas. Oleh itu, kami biasanya menambah r sebelum ungkapan biasa untuk menunjukkan menggunakan rentetan asal, seperti re.findall(r'<[A-Za-z0-9]+>', teks).
4. Ringkasan
Dalam pembangunan bahagian belakang, ungkapan biasa ialah alat yang sangat penting yang boleh membantu kami dengan pemprosesan data dan pengekstrakan maklumat, serta meningkatkan kecekapan pembangunan. Artikel ini memperkenalkan pengetahuan asas ungkapan biasa dan aplikasinya dalam Python, dan juga menyediakan petua pengoptimuman saya harap ia akan membantu pembaca.
Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pembangunan backend. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!