码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【正则】二代身份证正则表达式


    CSDN话题挑战赛第2期
    参赛话题:学习笔记

    二代身份证正则表达式

    • 二代身份证号码解释
    • 二代身份证地址码
    • 身份证正则表达式

    二代身份证号码解释

    1、前六位是地址码
    ●第一位、第二位表示省或直辖市或自治区;
    ●第三位、第四位代表市辖区;
    ●第五位、第六位代表区、县、市等
    2、中间8位出生年月日
    3、后4位
    ●3位顺序码
    ●1位校验位组成


    二代身份证地址码

    华北地区:北京市|110000,天津市|120000,河北省|130000,山西省|140000,内蒙古自治区|150000

    东北地区: 辽宁省|210000,吉林省|220000,黑龙江省|230000

    华东地区: 上海市|310000,江苏省|320000,浙江省|330000,安徽省|340000,福建省|350000,江西省|360000,山东省|370000

    华中地区: 河南省|410000,湖北省|420000,湖南省|430000

    华南地区:广东省|440000,广西壮族自治区|450000,海南省|460000

    西南地区:重庆市|500000,四川省|510000,贵州省|520000,云南省|530000,西藏自治区|540000

    西北地区: 陕西省|610000,甘肃省|620000,青海省|630000,宁夏回族自治区|640000,新疆维吾尔自治区|650000

    特别地区:台湾省|710000,香港特别行政区|810000,澳门特别行政区|820000


    身份证正则表达式

    表达式一:
    第1位数字范围是1至8:
    [1-8]
    第2位数字范围是0至7:
    [0-7]
    第3至第6位:
    [0-9]{4}
    第7至10位表示年,范围在1900年-2099年:
    (19|20)[0-9]{2}
    第11至12位(月):
    ((0[1-9])|(10|11|12))
    第13至14位(日):
    (([0-2][1-9])|10|20|30|31)
    第15至18位:
    [0-9]{3}[0-9Xx]


    表达式一

    [1-8][1-7][0-9]{4}(19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]


    表达式二(列举前两位所有的组合):

    (11|12|13|14|15|21|22|23|31|32|33|34|35|36|37|41|42|43|44|45|46|50|51|52|53|54|61|62|63|64|65|71|81|82)[0-9]{4}(19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]


    表达式三(在表达式二的基础上优化):

    (1[1-5]|2[1-3]|3[1-7]|4[1-6]|5[0-4]|6[1-5]|71|8[1-2])[0-9]{4}(19|20)[0-9]{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)[0-9]{3}[0-9Xx]


    注意点:
    1、前两位数字依旧可以做范围的缩减,比如第1位数字是1,第2位数字的范围只会是1-5
    2、第2位数字只有重庆是0,也就是说只有“50”这个组合,这里也可以优化
    3、第3至6位,由于数量太大,所有这里直接给了0-9随机
    4、前六位与省市对应关系

  • 相关阅读:
    当我第一次通过Kotlin和Compose来实现一个Canvas时, 我收获了什么?
    网页保存为pdf神器(可自定义编辑)—Print Edit WE
    集合-set系列集合
    微服务 Zipkin 链路追踪原理(图文详解)
    2-95 基于matlab的模板定位
    Kali存储扩展
    uni-app 前端项目(vue)部署到本地win系统Nginx上
    SpringBoot SpringBoot 基础篇(第一篇) 第2章 SpringBoot 全局配置 2.2 yaml 文件
    尚硅谷大叔培训:揭秘Flink四种执行图——ExecutionGraph和物理执行图
    【unity2023打包安卓工程】踩坑记录
  • 原文地址:https://blog.csdn.net/qq_31083947/article/details/126951837
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号