Ekspresi biasa Python

Linda Hamilton
Lepaskan: 2025-01-29 22:11:10
asal
211 orang telah melayarinya

Python Regular Expressions

Pengenalan

pemprosesan Odoma dan pengesahan input pengguna adalah pautan utama dalam pengaturcaraan, terutamanya apabila membina aplikasi yang memerlukan interaksi pengguna. Python menyediakan alat yang kuat untuk menyelesaikan tugas -tugas ini. Artikel ini akan meneroka dunia keabnormalan Python dan ungkapan biasa, menjelaskan kepentingan mereka, memberikan contoh praktikal, dan memastikan bahawa kod anda kuat dan cekap.

memahami keabnormalan python

Sebelum belajar dalam penyelidikan, kita mesti memahami konsep keabnormalan yang tidak normal dalam Python. Abnormal adalah peristiwa yang mengganggu proses biasa. Peristiwa -peristiwa ini biasanya disebabkan oleh kesilapan, seperti cuba mengeluarkan dokumen yang tidak wujud dengan sifar atau akses.

rawatan tidak normal asas

Python menyediakan blok percubaan untuk mengendalikan keabnormalan. Ini adalah contoh yang mudah:

Dalam contoh ini, jika pengguna cuba mengeluarkan bukan integer dengan sifar atau input, program ini akan menangkap keabnormalan dan mengendalikannya dengan elegan.
<code class="language-python">try:
    分子 = int(input("请输入分子:"))
    分母 = int(input("请输入分母:"))
    结果 = 分子 / 分母
    print(f"结果是 {结果}")
except ZeroDivisionError:
    print("错误:不能除以零!")
except ValueError:
    print("错误:请输入有效的整数!")</code>
Salin selepas log masuk
Salin selepas log masuk

kepentingan rawatan yang tidak normal

Dalam pembangunan perisian, pemprosesan abnormal yang betul adalah kritikal kerana ia dapat menghalang prosedur dari runtuh secara tidak sengaja. Ia juga menyediakan cara untuk menyampaikan kesilapan kepada pengguna untuk membantu mereka memahami masalah dan bagaimana menyelesaikannya.

Ekspresi biasa yang lebih mendalam

Ekspresi biasa, biasanya dipanggil "regex", adalah urutan watak yang ditakrifkan oleh mod carian. Mereka sangat berguna untuk pengesahan dan operasi rentetan dalam Python.

Mengapa menggunakan ungkapan biasa?

Pertimbangkan adegan yang perlu mengesahkan alamat e -mel. Sekiranya tidak ada ungkapan biasa, anda akhirnya boleh menulis sejumlah besar kod untuk memeriksa kewujudan simbol "@" dan tempoh ("."). Walau bagaimanapun, walaupun ini mungkin tidak mencukupi untuk memastikan alamat e -mel itu berkesan. Ekspresi biasa membolehkan anda menulis peraturan pengesahan yang mudah dan kuat.

contoh ungkapan biasa asas

Mari kita mulakan dengan contoh ekspresi biasa yang mudah untuk mengesahkan alamat e -mel:

Dalam contoh ini, r "^w @w .w $" adalah mod ekspresi biasa.
<code class="language-python">import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^\w+@\w+\.\w+$", 邮箱):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")</code>
Salin selepas log masuk
Salin selepas log masuk
^ Pastikan mod bermula dari permulaan rentetan. W Memadankan satu atau lebih aksara perkataan (huruf, nombor, dan baris yang lebih rendah). @ "@" Simbol. . $ Memastikan akhir corak pada akhir rentetan.

pengesahan e -mel lanjutan

Ungkapan asas asas di atas mungkin tidak menangkap semua format e -mel yang tidak sah. Sebagai contoh, ia membolehkan pelbagai simbol "@", yang tidak dibenarkan dalam alamat e -mel yang berkesan. Ini adalah versi yang lebih baik:

mod ekspresi biasa ini lebih mantap:

  • [^@] Pastikan kandungan sebelum dan selepas simbol "@" tidak mengandungi "@" yang lain.
  • w {2,} Pastikan terdapat sekurang -kurangnya dua aksara dalam bahagian nama domain (selepas tempoh).

rawatan perangkap biasa

Fungsi ekspresi biasa adalah kuat, tetapi mereka mungkin rumit. Sebagai contoh, tempoh dalam ungkapan biasa (.) Padankan mana -mana aksara selain menukar watak. Untuk memadankan tempoh sebenar dalam rentetan, anda perlu menggunakan cerun belakang (.) Untuk membuat kebenaran. Di samping itu, mod ekspresi biasa membezakan kes itu, tetapi anda boleh menggunakan logo Re.ignorcase untuk menangani masalah ini.

Beasiswa kes

<code class="language-python">try:
    分子 = int(input("请输入分子:"))
    分母 = int(input("请输入分母:"))
    结果 = 分子 / 分母
    print(f"结果是 {结果}")
except ZeroDivisionError:
    print("错误:不能除以零!")
except ValueError:
    print("错误:请输入有效的整数!")</code>
Salin selepas log masuk
Salin selepas log masuk
Dengan menggunakan logo re.ignorcase, ungkapan biasa tidak dibezakan oleh kes itu, dan "com" dan "com" dianggap sama.

Ekstrak Maklumat Pengguna

Ekspresi biasa bukan sahaja digunakan untuk mengesahkan; Katakan anda mahu mengeluarkan nama pengguna dari URL Twitter:

Kod ini Ekstrak Nama Pengguna Twitter dengan memadankan bahagian URL yang berkaitan. (W) menangkap nama pengguna, ia adalah kumpulan perlawanan kedua (kumpulan (2)).
<code class="language-python">import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^\w+@\w+\.\w+$", 邮箱):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")</code>
Salin selepas log masuk
Salin selepas log masuk

mengoptimumkan kod dengan ungkapan biasa

Gunakan rentetan asal

Apabila memproses ungkapan biasa, lebih baik menggunakan rentetan asal (r "). Rentetan primitif melihat cerun belakang sebagai watak teks untuk mengelakkan urutan peralihan yang tidak disengajakan. Contohnya:

Elakkan kesilapan biasa

<code class="language-python">import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^[^@]+@[^@]+\.\w{2,}$", 邮箱):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")</code>
Salin selepas log masuk

Buat mod terlalu rumit: Bermula dari mudah, hanya meningkatkan kerumitan apabila perlu.

    Abaikan Prestasi: Ekspresi biasa mungkin lambat apabila menggunakan mod kompleks atau teks besar. Dengan meminimumkan pengoptimuman retrospektif.
  • kebolehbacaan: Mengekalkan kebolehbacaan dengan menguraikan corak ekspresi biasa yang kompleks dengan menggunakan anotasi atau corak terperinci untuk mengekalkan kebolehbacaan.
  • Aplikasi Sebenar: Bersihkan Input Pengguna
Pengguna biasanya memasukkan data dalam format yang tidak dijangka. Ekspresi biasa dapat membantu menyeragamkan input ini. Pertimbangkan program untuk nama format:

Kod ini akan disusun semula sebagai "nama keluarga" dalam nama "nama keluarga, nama" format.

<code class="language-python">import re

邮箱 = input("您的邮箱地址是?").strip()

if re.search(r"^\w+@\w+\.\w+$", 邮箱, re.IGNORECASE):
    print("有效的邮箱地址")
else:
    print("无效的邮箱地址")</code>
Salin selepas log masuk
pengoptimuman SEO dan penggunaan sebenar

Ekspresi biasa juga boleh memainkan peranan dalam SEO. Sebagai contoh, mereka boleh digunakan untuk penangkapan rangkaian, mengekstrak tag meta atau kandungan khusus dari HTML untuk memastikan kandungan rangkaian dioptimumkan untuk enjin carian.

Contoh ini adalah perihalan elemen dari tanda HTML, yang penting untuk SEO.

<code class="language-python">import re

网址 = input("请输入您的 Twitter 个人资料网址:").strip()

匹配 = re.search(r"^https?://(www\.)?twitter\.com/(\w+)", 网址)
if 匹配:
    用户名 = 匹配.group(2)
    print(f"用户名:{用户名}")
else:
    print("无效的网址")</code>
Salin selepas log masuk
Kesimpulan

Memahami dan menguasai ekspresi biasa di Python untuk membuka dunia yang penuh dengan kemungkinan, dari pengesahan mudah ke tugas pemprosesan teks yang kompleks. Digabungkan dengan rawatan yang tidak normal yang betul, anda boleh membuat aplikasi yang kuat, cekap dan mesra pengguna. Terus mencuba corak ekspresi biasa yang berbeza. Dengan menguasai konsep -konsep ini, anda bukan sahaja boleh menulis lebih banyak kod ringkas dan lebih cekap, tetapi juga mendapatkan kelebihan membangunkan aplikasi yang dapat mengendalikan input dunia nyata dengan elegan.

Atas ialah kandungan terperinci Ekspresi biasa Python. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan