身份證匹配:
idcardregex = r"^[1-9]\d{13,16} [0-9x]$"
re.search(idcardregex, "110101198001017032") != None # =>True
小寫字母可能會匹配錯誤
----使用括號 可以兼容15位和18位的情況。是用括號的意思就是分組。
id = r"^[1-9]\d{14}(\d{2})"
一組字符循環出現,就應該稱為一組。
准確匹配opentag:
r"^<[^/]([^>]*[^/])?>$"
匹配完整E-mail的正則表達式:
emailRegex = r"^[-\w.]{1,64}@([-a-zA-Z0-9]{1,63}\.)*[-a-zA-Z0-9]{1,63}$"
多選結構:{。。|。。}
id=r"^([1-9]\d{14}|[1-9]\d{14}\d{2}[0-9x])$"
准確匹配0-255之間的字符串:
r"^([0-9]|[0-9]{2}|1[0-9][0-9]|2[0-4][0-9]|25[0-5])$"
准確的HTML tag匹配
id=r"^<('[^']*'|\"[^\"]*\"|[^'\">])+>$"
^ab|cd$ 字符串開頭的ab或者是結尾的cd.
多選結構的選擇順序是偏左的。
小結:
對長度可變的字符串可以使用分組。
URL使用分組匹配要梳理好邏輯關系,用括號的分組功能把各種分支的情況歸攏到一起。
多選結構可以簡化單純分組的難度。
沒有括號的多選結構的解讀是開始,結尾的解讀方式
遇到相似的多選結構的匹配順序是優先匹配左側的選項。
分析 演繹 解讀 總結。
