正则表达式常用资源

爬虫常用匹配规则

一个或多个换行符

\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}