现在国家统一规定18位身份证:地址码(1+5)+ 出生日期码(8)+ 顺序码(3)+ 校验码(1)-----------------------重庆市(500000)
>>> import re
>>> r=r'(^[1-8][0-7]{2}\d{3}([12]\d{3})(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9X])$)'
>>> re.findall(r,'33070219630306041X')
[('33070219630306041X', '1963', '03', '06', 'X')]
>>> print re.findall(r,'330726196507040016')
[('330726196507040016', '1965', '07', '04', '6')]