Rumah pembangunan bahagian belakang Tutorial Python Memahami Regex dalam Python: Contoh Praktikal

Memahami Regex dalam Python: Contoh Praktikal

Jan 04, 2025 am 01:20 AM

Understanding Regex in Python: A Practical Example

Pengenalan

Ekspresi biasa, biasanya dikenali sebagai regex, ialah alat yang berkuasa untuk padanan corak dan manipulasi teks. Mereka membenarkan pembangun mencari, memadankan dan memanipulasi rentetan dengan ketepatan. Dalam catatan blog ini, kami akan meneroka cara regex digunakan dalam Python melalui contoh praktikal daripada fungsi pengesahan pelanggan.

Konteks

Pertimbangkan senario di mana kami perlu mengesahkan maklumat pelanggan, khususnya nama pertama, nama keluarga dan nombor mudah alih mereka. Coretan kod berikut menunjukkan cara regex digunakan untuk mengesahkan nombor mudah alih dalam kelas Python:

from sqlalchemy.orm import validates
import re

class Customer:
    @validates('first_name', 'last_name', 'mobile')
    def validate(self, key, value):
        if key == 'first_name' or key == 'last_name':
            if len(value) == 0:
                raise ValueError(f'Server validation error: No {"first name" if key == "first_name" else "last name"}')
        elif key == 'mobile':
            mobile = r"((([\(]?[0-9]{3,4}[\)]\s?)|([0-9]{3,4}[\-]))[0-9]{3,4}[\-][0-9]{4})|([0-9]{10,12})"
            mobile_regex = re.compile(mobile)
            if not mobile_regex.fullmatch(value):
                raise ValueError('Server validation error: Invalid mobile number')

        return value
Salin selepas log masuk

Memecahkan Regex

Dalam kaedah pengesahan, kami menggunakan regex untuk memastikan nombor mudah alih yang diberikan oleh pelanggan mematuhi format tertentu. Mari kita pecahkan corak regex yang digunakan:

mobile = r"((([\(]?[0-9]{3,4}[\)]\s?)|([0-9]{3,4}[\-]))[0-9]{3,4}[\-][0-9]{4})|([0-9]{10,12})"
Salin selepas log masuk

Kurungan dan Tanda Sempang:
([(]?[0-9]{3,4}[)]s?): Bahagian regex ini sepadan dengan kurungan pembuka pilihan (, diikuti dengan 3 atau 4 digit, kurungan penutup pilihan ), dan pilihan ruang.
([0-9]{3,4}[-]): Bahagian ini sepadan dengan 3 atau 4 digit diikuti dengan tanda sempang -.

Nombor Utama:
[0-9]{3,4}[-][0-9]{4}: Bahagian ini sepadan dengan 3 atau 4 digit, tanda sempang dan kemudian 4 digit.
Format Alternatif:

([0-9]{10,12}):
Bahagian ini sepadan dengan jujukan 10 hingga 12 digit, membolehkan format nombor mudah alih yang lebih padat tanpa pemisah.

Menggunakan Regex untuk Pengesahan

Corak regex disusun menggunakan re.compile(mobile), dan kaedah padanan penuh digunakan untuk menyemak sama ada keseluruhan rentetan sepadan dengan corak:

mobile_regex = re.compile(mobile)
if not mobile_regex.fullmatch(value):
    raise ValueError('Server validation error: Invalid mobile number')
Salin selepas log masuk

Jika nombor mudah alih tidak sepadan dengan corak regex, ValueError dinaikkan, menunjukkan nombor mudah alih tidak sah.

Kesimpulan

Regex ialah alat serba boleh untuk pengesahan dan manipulasi rentetan. Dalam contoh ini, kami menggunakan regex untuk mengesahkan nombor mudah alih, memastikan ia mematuhi format tertentu. Dengan memahami dan menggunakan regex, pembangun boleh melakukan operasi rentetan yang kompleks dengan mudah dan tepat.

Sama ada anda mengesahkan input pengguna, mencari corak dalam teks atau melakukan manipulasi teks, regex menyediakan penyelesaian yang mantap untuk keperluan anda. Selamat mengekod!

Atas ialah kandungan terperinci Memahami Regex dalam Python: Contoh Praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Bagaimana saya menggunakan sup yang indah untuk menghuraikan html? Mar 10, 2025 pm 06:54 PM

Bagaimana saya menggunakan sup yang indah untuk menghuraikan html?

Penapisan gambar di python Penapisan gambar di python Mar 03, 2025 am 09:44 AM

Penapisan gambar di python

Cara memuat turun fail di python Cara memuat turun fail di python Mar 01, 2025 am 10:03 AM

Cara memuat turun fail di python

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks Mar 05, 2025 am 09:58 AM

Cara Menggunakan Python untuk Mencari Pengagihan Zipf Fail Teks

Cara Bekerja Dengan Dokumen PDF Menggunakan Python Cara Bekerja Dengan Dokumen PDF Menggunakan Python Mar 02, 2025 am 09:54 AM

Cara Bekerja Dengan Dokumen PDF Menggunakan Python

Cara Cache Menggunakan Redis dalam Aplikasi Django Cara Cache Menggunakan Redis dalam Aplikasi Django Mar 02, 2025 am 10:10 AM

Cara Cache Menggunakan Redis dalam Aplikasi Django

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch? Mar 10, 2025 pm 06:52 PM

Bagaimana untuk melakukan pembelajaran mendalam dengan Tensorflow atau Pytorch?

Memperkenalkan Toolkit Bahasa Alam (NLTK) Memperkenalkan Toolkit Bahasa Alam (NLTK) Mar 01, 2025 am 10:05 AM

Memperkenalkan Toolkit Bahasa Alam (NLTK)

See all articles