爬虫常用匹配规则
一个或多个换行符
\n+
一个或多个空白字符
\s+
非贪婪匹配
.和代表可以匹配任意无限多个字符,加上?表示使用非贪婪模式进行匹配,也就是我们会尽可能短地做匹配,以后我们还会大量用到 .? 的搭配。
.*?
分组匹配
当正则表达式匹配到了多个分组,在后面的遍历item中,item[0]就代表第一个(.?)所指代的内容,item[1]就代表第二个(.?)所指代的内容,以此类推。
(.*?)
表单验证类常用匹配规则
邮箱
\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}
中文
[\u4e00-\u9fa5]
匹配双字节字符(包含汉字)
[^\x00-\xff]
匹配时间(时:分:秒)
([01]?\d|2[0-3]):[0-5]?\d:[0-5]?\d
匹配IP(IPV4)
(\d+)\.(\d+)\.(\d+)\.(\d+)
匹配身份证
\d{15}|\d{17}[0-9Xx]
匹配日期(年-月-日)
((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))
匹配日期(年/月/日)
((((1[6-9]|[2-9]\d)\d{2})/(0?[13578]|1[02])/(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})/(0?[13456789]|1[012])/(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))
匹配正整数
[1-9]\d*
匹配负整数
-[1-9]\d*
匹配手机号
(13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7}