Rumah >pembangunan bahagian belakang >Tutorial Python >Cara menggunakan ungkapan biasa Python untuk pengesahan nombor ID

Cara menggunakan ungkapan biasa Python untuk pengesahan nombor ID

WBOY
WBOYasal
2023-06-23 09:08:493537semak imbas

Nombor kad pengenalan adalah simbol pengenalan yang sering kita gunakan dalam kehidupan seharian. Apabila memproses beberapa data yang berkaitan dengan maklumat identiti, selalunya perlu mengesahkan nombor ID untuk memastikan kesahihannya. Ekspresi biasa Python ialah alat yang sangat mudah dan cekap yang boleh digunakan untuk mengesahkan nombor ID dengan cepat. Artikel ini akan memperkenalkan cara menggunakan ungkapan biasa Python untuk pengesahan nombor ID.

1. Format asas nombor ID

Sebelum kita mula menulis ungkapan biasa, kita perlu terlebih dahulu memahami format asas nombor ID. Nombor kad pengenalan pemastautin Cina terdiri daripada 18 digit, yang mana 17 digit pertama adalah kod untuk wilayah dan tarikh lahir, dan digit ke-18 ialah kod semakan. Format khusus adalah seperti berikut:

  1. 1-6 digit pertama ialah kod alamat, menunjukkan kawasan pentadbiran di mana pendaftaran isi rumah terletak
  2. Digit ke-7-14 ialah kod tarikh, bulan dan hari lahir, menunjukkan orang Tarikh lahir
  3. Digit ke-15 hingga ke-17 ialah kod urutan, menunjukkan nombor urutan kad pengenalan dalam kawasan kod alamat; digit
  4. ialah kod semakan, yang digunakan untuk Semak sama ada keseluruhan nombor kad pengenalan memenuhi spesifikasi.

2. Gunakan ungkapan biasa Python untuk mengesahkan nombor ID

Seterusnya kami akan memperkenalkan cara menggunakan ungkapan biasa Python untuk mengesahkan nombor ID.

(1) Memperkenalkan modul semula

Apabila menggunakan Python untuk menulis dan memadankan ungkapan biasa, anda perlu memperkenalkan modul semula terlebih dahulu:

import re

(2 ) Menulis ungkapan biasa

Semasa menulis ungkapan biasa untuk nombor ID, anda perlu memberi perhatian kepada perkara berikut:

  1. Panjang nombor ID mestilah 18 digit , jika tidak, ia akan dinilai sebagai tidak sah;
  2. 17 digit pertama mestilah nombor, dan digit terakhir boleh menjadi nombor atau huruf Hasil jumlah dibahagikan dengan 11, dan nombor yang sepadan dengan bakinya ialah kod semak. Jika bakinya ialah 10, kod semak ialah huruf X.
  3. Berdasarkan faktor di atas, kita boleh menulis ungkapan biasa berikut:
pattern = r'^[1-9]d{5}[1-9]d{3}(0[1-9]|1[0-2])(0[1-9]|[1-2]d|3[0-1])d{3}[dX]$'

Antaranya, r mewakili rentetan itu adalah rentetan asal, ^ mewakili permulaan padanan rentetan, $ mewakili penghujung rentetan padanan, [] mewakili julat padanan, d mewakili aksara angka yang sepadan, {n} mewakili padanan n aksara terkemuka, | .

(3) Gunakan modul semula untuk memadankan

Selepas menulis ungkapan biasa, kita boleh menggunakan fungsi padanan() dalam modul semula untuk memadankan sintaksnya adalah seperti berikut:

re.match(pattern, string, flags=0)

Antaranya, corak ialah ungkapan biasa, rentetan ialah rentetan yang perlu dipadankan, dan parameter bendera boleh menetapkan mod padanan (re.IGNORECASE biasanya digunakan untuk menunjukkan mengabaikan kes).

Contoh kod Python lengkap diberikan di bawah:

import re

id_card = '110101198001011234' # 待验证的身份证号
pattern = r'^[1-9]d{5}[1-9]d{3}(0[1-9]|1[0-2])(0[1-9]|[1-2]d|3[0-1])d{3}[dX]$'

if re.match(pattern, id_card):
    print('该身份证号合法!')
else:
    print('该身份证号不合法!')

Jalankan kod di atas, hasil output ialah "Nombor ID ini adalah sah!", menunjukkan bahawa nombor ID itu mematuhi peraturan.

3. Ringkasan

Artikel ini terutamanya memperkenalkan cara menggunakan ungkapan biasa Python untuk pengesahan nombor ID. Dalam aplikasi praktikal, kami boleh melaraskan ungkapan biasa seperti yang diperlukan untuk menyesuaikan diri dengan keperluan pengesahan data yang berbeza. Pada masa yang sama, kita juga perlu memberi perhatian kepada kecekapan penulisan dan pemadanan ungkapan biasa untuk memastikan prestasi dan kestabilan program.

Atas ialah kandungan terperinci Cara menggunakan ungkapan biasa Python untuk pengesahan nombor ID. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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