正则表达式:分组
身份证匹配:
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使用分组匹配要梳理好逻辑关系,用括号的分组功能把各种分支的情况归拢到一起。
多选结构可以简化单纯分组的难度。
没有括号的多选结构的解读是开始,结尾的解读方式
遇到相似的多选结构的匹配顺序是优先匹配左侧的选项。
分析 演绎 解读 总结。