Rumah > pembangunan bahagian belakang > Tutorial Python > Cara menggunakan ungkapan biasa Python untuk pembangunan backend

Cara menggunakan ungkapan biasa Python untuk pembangunan backend

王林
Lepaskan: 2023-06-22 17:21:07
asal
1276 orang telah melayarinya

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.

  1. Memadankan nombor dalam rentetan

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)
Salin selepas log masuk

Hasil output ialah :

['2', '3']
Salin selepas log masuk
  1. Padankan alamat e-mel

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)
Salin selepas log masuk

Hasil output ialah:

['john@example.com']
Salin selepas log masuk
  1. sepadan dengan HTML Untuk hiperpautan

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)
Salin selepas log masuk

Hasil keluarannya ialah:

['https://www.google.com', 'https://www.baidu.com', 'https://www.sogou.com']
Salin selepas log masuk

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.

  1. Apabila memadankan sekumpulan aksara, gunakan set aksara [] untuk menggantikan aksara yang ditentukan

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.

  1. Elakkan menggunakan mod tamak

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).

  1. Gunakan rentetan mentah

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.


  1. >

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan