import re # 1、匹配密碼,密碼必須是由6位數字與字母組成,并且不能是純數字也不能是純字母 # 1.1 知識點:# ?!pattern,表示在沒有配到pattern的字串的前提下,再進行后續的正則運算式匹配,后續匹配仍然從被匹配字串的頭開始 # 1.2 答案: print(re.search("(?!^[0-9]+$)(?!^[a-zA-Z]+$)^[0-9A-Za-z]{6}$","123asf").group()) # 123asf # 1.3 解釋: # 上述正則的意思為:在匹配(?!^[0-9]+$)以及(?!^[a-zA-Z]+$)過后,如果字串成功后在從頭去匹配(?!^[a-zA-Z]+$),最終匹配完, # 2、匹配密碼,密碼強度:強,必須包含大寫,小寫和數字,和特殊字符(!,@,#,%,&),且大于6位 # 2.1 知識點:# ?=pattern,表示在配到pattern的字串的前提下,再進行后續的正則運算式匹配,后續匹配仍然從被匹配字串的頭開始 # 2.2 答案: # while True: # pwd = input("please your password: ").strip() # 比如輸入:Aa3@adf123 # pwd_pattern= re.compile("(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9])(?=.*[!@#%&])^([a-zA-Z0-9!@#%&]){6,}$") # if pwd_pattern.search(pwd) is None: # print("密碼強度不夠") # else: # break # 2.3 解釋: # 上述正則運算式的意思: #(1)首先是(?=.*[A-Z])匹配,.*表示密碼中可以包含多個字符,[A-Z]代表密碼中需要包含至少一個大寫字母,注意一定不要去掉.*寫成(?=[A-Z]),那樣表示密碼只能由一個字符組成,該字符是大寫字母 #(2)其次是(?=.*[a-z])匹配,同上,確保密碼中必須至少有一個小寫字母 #(3)然后是(?=.*[0-9])匹配,同上,確保密碼中必須至少有一個數字 #(4)然后是(?=.*[!@#%&])匹配,同上,,確保密碼中必須至少有一個特殊符號!@#%& #(5)最后是^([a-zA-Z0-9!@#%&]){6,}$,確保密碼是由[a-zA-Z0-9!@#%&]字符構成,至少有6位 # 3、匹配email # print(re.findall("(?:[a-zA-Z0-9]+)@(?:[0-9a-zA-Z]+).com","[email protected] [email protected]")) # 4、匹配身份證 # your_id=input(">>: ").strip() # print(re.findall("^([0-9]){17}([0-9]|X)$",your_id)) # 17個數字組成,最后一個字符可以是數字或X # 5、匹配用戶名,包含字母或者數字,且8位 # print(re.findall("^[0-9a-zA-Z]{8}$","egonlinh")) # 5.1、要求輸入的內容只能是漢字 # name=input('>>: ').strip() # print(re.search(r'[\u4E00-\u9fa5]+',name)) # 6、取出字串里的數字 # print(re.findall(r'\d+(?:\.\d+)?', 'sww123kw11.333e2lkd')) # 7、取出所有負整數 # print(re.findall(r'-\d+', '-12,3,54,-13.11,64,-9')) # 錯誤答案 # print(re.findall(r'(?!-\d+\.\d+)-\d+', '-12,3,54,-13.11,64,-9')) # 正確答案 # 8、所有數字 # print(re.findall(r'\-?\d+(?:\.\d+)?', '-12.9,3.92,54.11,64,89,-9,-45.2')) # 9、所有負數 # print(re.findall(r'\-\d+(?:\.\d+)?', '-12.9,3.92,54.11,64,89,-9,-45.2')) # 10、所有的非負浮點數 print(re.findall(r'\d+\.\d+', '-12.9,3.92,54.11,64,89,-9,-45.2')) # 11、 msg = """ 中文名 貝拉克·侯賽因·奧巴馬 外文名 Barack Hussein Obama II 別名 歐巴馬 性 別 男 國籍 美國 民 族 德裔族 出生地 美國夏威夷州檀香山 出生日期 1961年8月4日 職 業政治家、律師、總統 畢業院校 哥倫比亞大學,哈佛大學 信 仰新教 主要成就 1996年伊利諾伊州參議員 主要成就 美國第56屆、57屆總統 2009年諾貝爾和平獎獲得者 時代周刊年度風云人物2008、2011 任期內清除本·拉登 代表作品 《我相信變革》《我父親的夢想》《無畏的希望》 所屬政黨美國民主黨 血 型 AB型 學 院西方學院 妻 子 米歇爾·拉沃恩·奧巴馬 """ #外文名 print(re.findall("外文名 (.*)",msg)) #出生日期 print(re.findall('出生日期 (\d{4})年(\d+)月(\d+)日',msg)) #妻子姓名 print(re.findall('妻 子 (\S+)',msg))
---23---
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/69457.html
標籤:Python
上一篇:re模塊
