正則匹配護照格式

2021-09-27 07:28:51 字數 1877 閱讀 2573

美國、英國護照號碼:9 位數字 加拿大護照:2 個字母加 6 個數字 法國護照:2 個數字加 2 個字母加 5 個數字 義大利護照:2 個字母加 7 個數字 西班牙護照:3 個字母加 6 個數字 德國護照:9 個字元,由 2-3 個數字與 6-7 個字母混排,頭尾是字母。或者單純為 9 個數字 

def foreign_passport(sentence):

pattern = [r'\d', r'[a-za-z][0-9]', r'[0-9][a-za-z][0-9]', r'[a-za-z][0-9]', r'[a-za-z][0-9]', r'[a-za-z][a-za-z0-9][a-za-z]']

categories =

# 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

count_num = 0

for s in re.findall(pattern[1], sentence, re.i)[0]:

if s.isalpha():

count_alpha += 1

elif s.isdigit():

count_num += 1

# print('alpha',count_alpha)

# print('num', count_num)

if count_alpha == 2 and count_num == 6:

return categories[1] + '護照', re.findall(pattern[1], sentence, re.i)

elif count_alpha == 2 and count_num == 7:

return sentence + ' 欄位中含有' + categories[3] + '護照'

elif count_alpha == 3 and count_num == 6:

return sentence + ' 欄位中含有' + categories[4] + '護照'

elif re.search(pattern[2], sentence, re.i): #re.i表示忽略字母大小寫

return categories[2] + '護照', re.findall(pattern[2], sentence, re.i)

elif re.search(pattern[3], sentence, re.i): #re.i表示忽略字母大小寫

return categories[3] + '護照', re.findall(pattern[3], sentence, re.i)

elif re.search(pattern[4], sentence, re.i): #re.i表示忽略字母大小寫

return categories[4] + '護照', re.findall(pattern[4], sentence, re.i)

elif re.search(pattern[5], sentence, re.i): #re.i表示忽略字母大小寫

return categories[5] + '護照', re.findall(pattern[5], sentence, re.i)

else:

return '欄位中不含護照資訊'

正則匹配時間格式

是從專案裡抽出來的,沒有細整理。應用場景是在碼值翻譯的時候,需要把不同格式的時間翻譯一下。我們的專案是匯入zip包,儲存老資料,思路是先去判斷xml檔案裡面的時間是什麼格式的,然後根據具體的格式轉換。docking annotation field.getannotation docking.cla...

js 正則匹配

isnumber 是否為數字 regexps.isnumber d d isint 是否為整形 regexps.isint d istime 是否為時間格式 regexps.istime d d d s d d d isdate 是否為日期格式 regexps.isdate d d d isemai...

perl正則匹配

字元的種類是一定的,無非是空格,數字,大小寫字母,和perl中定義的元字元,還有本國語言。所以原則上任何格式的字元都能匹配。匹配工具 選擇符號,關鍵字,量詞,斷言,轉義字元 當出現多個字元組成的 非空格字元時候,例如123,45 3 s sdgg 則使用 0 9a za z 若加上 則只能匹配一行中...