正则匹配护照格式

这篇博客详细介绍了不同国家护照号码的格式,包括美国和英国的9位数字,加拿大的2个字母加6个数字,法国的2个数字加2个字母加5个数字,意大利的2个字母加7个数字,西班牙的3个字母加6个数字,以及德国的复杂组合形式。
摘要由CSDN通过智能技术生成

美国、英国护照号码:9 位数字 加拿大护照:2 个字母加 6 个数字 法国护照:2 个数字加 2 个字母加 5 个数字 意大利护照:2 个字母加 7 个数字 西班牙护照:3 个字母加 6 个数字 德国护照:9 个字符,由 2-3 个数字与 6-7 个字母混排,头尾是字母。或者单纯为 9 个数字 

def foreign_passport(sentence):
    pattern = [r'\d{9}', r'[a-zA-Z]{2}[0-9]{6}', r'[0-9]{2}[a-zA-Z]{2}[0-9]{5}', r'[a-zA-Z]{2}[0-9]{7}', r'[a-zA-Z]{3}[0-9]{6}', r'[a-zA-Z][a-zA-Z0-9]{7}[a-zA-Z]']
    categories = {0:"美国/英国/德国", 1:"加拿大/意大利/西班牙", 2:"法国", 3:"意大利", 4:"西班牙", 5:"德国"}
    # print(re.findall(pattern[5], sentence, re.I))
    for i in range(len(pattern)):
        if re.search(pattern[0], sentence, re.I): #re.I表示忽略字母大小写
            return categories[0] + '护照', re.findall(pattern[0], sentence, re.I)
        elif re.search(pattern[1], sentence, re.I): #re.I表示忽略字母大小写
            count_alpha = 0
            cou
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值