正则表达式

正则表达式

身份证校验

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
## 前六位,地区
([1-6][1-9]|50)\d{4}
## 7-8位置,年份前两位,1800-2099
(18|19|20)
## 9-10位置,年份后两位
\d{2}
## 11-12,月份
((0[1-9])|10|11|12)
## 13-14,日期
(([0-2][1-9])|10|20|30|31)
## 15-17,顺序码
\d{3}
## 校验码:
[0-9Xx]

## 校验18位的身份证
^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$

email校验

1
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/;

ip校验

1
(1-255).(0-255).(0-255).(0-255)

python使用正则

1
2
3
4
5
6
7
8
9
10
11
import re

idlist=['440107199808180637','100107199808180637']

pat=r'^([1-6][1-9]|50)\d{4}(18|19|20)\d{2}((0[1-9])|10|11|12)(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$'

for id in idlist:
if re.search(pat,id):
print('OK')
else:
print('NO')