利用正則表達式實現對身份證合法程度的判斷
1 # !usr/bin/env python3 2 # coding:utf-8 3 """ 4 @ Copyright (c)2020,高鐵學院學生 5 @ All rightsreserved 6 @ Author: LingluSenior 7 @ Blog(個人學習網): xlcybk.github.io 8 @ WeChat Official Account(微信公眾號): LingluSenior 9 10 @ File: idcard_legal.py 11 @ Time: 2020/5/28 10:48 12 13 @Motto: 不積跬步無以至千里,不積小流無以成江海,程序人生的精彩需要堅持不懈地積累! 14 """ 15 import re 16 while(True): 17 id_card = input("請輸入身份證號碼:") 18 key = "^[1-9]{2}\d{4}(18|19|20)\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$" 19 brea = re.match(key,id_card) 20 if brea != None : 21 print(brea.group()) 22 print("你的身份證號碼為:" + brea.group()) 23 year = int(id_card[6:10]) # 截取年份 24 month = int(id_card[10:12]) # 截取月份 25 day = int(id_card[12:14]) # 截取日期 26 sex = int(id_card[16]) #截取性別奇數為男反之為女 27 print("你的出生年日期為:%s" % year, month, day) 28 if sex % 2 == 0: 29 print("該身份證號碼的持證人為女性") 30 else: 31 print("該身份證號碼的持證人為男性") 32 33 print("=" * 30) 34 break 35 else : 36 print("匹配失敗,請重新輸入")