Bootstrap

正则匹配护照格式

美国、英国护照号码: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
;