Java使用正则表达式匹配省市县

news2024/9/22 3:08:34

目录

1.导入依赖

2.编写工具类

3.验证​


1.导入依赖

<!--为了使用StringUtils-->
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>

2.编写工具类

城市名等信息不具有有效性,假数据

 /**
     * 解析身份证地址信息
     * 如果是直辖市, 省市一致
     * @param address
     * @return
     */
    private static List<String> directManageCityList = Arrays.asList("北京市", "天津市", "上海市","重庆市");
    public static Address addressResolution(String address) {

        for (String directCity : directManageCityList) {
            if (StringUtils.startsWith(address, directCity)) {
                address = directCity + address;
                break;
            }
        }

        String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市|.*?)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<district>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<detail>.*)";
        Matcher m = Pattern.compile(regex).matcher(address);
        String province = null, city = null, district = null, town = null, detail = null;
        List<Map<String, String>> table = new ArrayList<Map<String, String>>();
        Map<String, String> row = null;
        Address addressObj = new Address();
        while (m.find()) {
            row = new LinkedHashMap<String, String>();
            province = m.group("province");
            addressObj.setProvince( province == null ? "" : province.trim());
            city = m.group("city");
            addressObj.setCity(city == null ? "" : city.trim());
            district = m.group("district");
            addressObj.setDistrict( district == null ? "" : district.trim());
            town = m.group("town");
            addressObj.setTown( town == null ? "" : town.trim());
            detail = m.group("detail");
            addressObj.setDetail( detail == null ? "" : detail.trim());

        }
        return addressObj;
    }

    @Data
    public static class Address {
        private String province;
        private String city;
        private String district;
        private String town;
        private String detail;
    }



    public static void main(String[] args) {
        String idCard = "41010119840202457X";
//        System.out.println(IDCardByConstellation(idCard));
        System.out.println(DateUtils.addressResolution("北京市五一路103号"));
        System.out.println(DateUtils.addressResolution("重庆市渝北区长河路103号"));
        System.out.println(DateUtils.addressResolution("河北省邯郸市继光镇刘家村203号"));
    }

3.验证

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1152957.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯选拔赛真题44】python小蓝晨跑 青少年组蓝桥杯python 选拔赛STEMA比赛真题解析

目录 python小蓝晨跑 一、题目要求 1、编程实现 2、输入输出 二、算法分析

LeetCode | 27. 移除元素

LeetCode | 27. 移除元素 OJ链接 这道题有一个方法是要删除的数据直接后一个数据挪动到前一个数据&#xff0c;这个方法好不好&#xff1f;最坏的情况下时间复杂度是O(N^2) 还有一个方法 定义一个src定义一个dst&#xff0c;原地直接进行赋值&#xff0c;不进行挪动&#xf…

什么是车规级芯片?一起探讨车规级芯片NCV8705MTADJTCG LDO线性稳压器 工作原理、特性参数

关于车规级芯片&#xff08;Automotive Grade Chip&#xff09;&#xff0c;车规级芯片是专门用于汽车行业的芯片&#xff0c;具有高可靠性、高稳定性和低功耗等特点&#xff0c;以满足汽车电子系统的严格要求。这些芯片通常用于车载电子控制单元&#xff08;ECU&#xff09;和…

轻量级狂雨小说cms系统源码 v1.5.2 基于ThinkPHP5.1+MySQL

轻量级狂雨小说cms系统源码 v1.5.2 基于ThinkPHP5.1MySQL的技术开发 狂雨小说cms提供一个轻量级小说网站解决方案&#xff0c;基于ThinkPHP5.1MySQL的技术开发。 KYXSCMS,灵活&#xff0c;方便&#xff0c;人性化设计简单易用是最大的特色&#xff0c;是快速架设小说类网站首选…

移动路由器Cellular Router命令执行漏洞复现 [附POC]

文章目录 移动路由器Cellular Router命令执行漏洞复现 [附POC]0x01 前言0x02 漏洞描述0x03 影响版本0x04 漏洞环境0x05 漏洞复现1.访问漏洞环境2.构造POC3.复现 0x06 修复建议 移动路由器Cellular Router命令执行漏洞复现 [附POC] 0x01 前言 免责声明&#xff1a;请勿利用文章…

Java IDEA设置环境变量 以及代码获取

IDEA 设置环境变量 1.进入如图设置&#xff0c;一般的 java 程序和 spring Boot &#xff0c;还是tomcat 都可以从这里进入 2.可以在如下地方手动添加 3. tomcat 类 4.spring boot 类 代码获取指定值 假定我设置如下 代码则如下获取&#xff08;类均为JDK 自带类&…

AI虚拟直播系统源码 24小时直播不停歇 带完整搭建教程

近几年电商直播带货热潮持高不跌&#xff0c;很多商家企业都会选择线上直播卖产品&#xff0c;与此同时&#xff0c;虚拟主播开始盛行&#xff0c;与真人主播相比&#xff0c;品牌虚拟主播无档期风险、离职风险、人设稳定更可控。 虚拟主播的不是为了取代真人主播而开发&#…

重锤式体电阻测试仪应用在什么领域?有什么作用?

重锤式体电阻测试仪是一种用于测量物体电阻的仪器&#xff0c;主要应用于以下几个领域&#xff1a; 电力工业&#xff1a;在电力系统中&#xff0c;重锤式体电阻测试仪可以用于测试电缆、变压器、开关设备等电气设备的电阻值&#xff0c;以确保它们的运行正常。 电子工业&…

AI集成ChatGPT敲代码神器Copilot

&#x1f4d1;前言 本文主要是AI工具Copilot解读文章&#xff0c;如果有什么需要改进的地方还请大佬指出⛺️ &#x1f3ac;作者简介&#xff1a;大家好&#xff0c;我是青衿&#x1f947; ☁️博客首页&#xff1a;CSDN主页放风讲故事 &#x1f304;每日一句&#xff1a;努力…

最新彩虹云商城系统源码/孤傲电商云商城系统源码/在线购物商场视觉源码+自助下单+独立后台

源码简介&#xff1a; 最新彩虹云商城系统源码&#xff0c;孤傲电商云商城系统源码&#xff0c;它是在线购物商场视觉源码&#xff0c;有很好的视觉购物享受&#xff0c;它还有独立管理后台。 孤傲云商城系统是一款功能丰富的电子商务平台&#xff0c;而彩虹云商城系统plus史…

Python的web自动化学习(五)Selenium的隐式等待(元素定位)

引言&#xff1a; WebDriver隐式等待是一种全局性的等待方式&#xff0c;它会在查找元素时设置一个固定的等待时间。当使用隐式等待时&#xff0c;WebDriver会在查找元素时等待一段时间&#xff0c;如果在等待时间内找到了元素&#xff0c;则立即执行下一步操作&#xff1b;如果…

倾斜摄影三维模型的根节点合并注意事项浅析

倾斜摄影三维模型的根节点合并注意事项浅析 倾斜摄影三维模型的根节点合并是构建高精度、真实感和稳定性的三维模型的关键步骤之一。在进行根节点合并时&#xff0c;需要注意以下几个重要的事项&#xff0c;以确保合并的准确性和可靠性。 首先&#xff0c;准确的相机标定是进行…

5000元高端投影仪双十一怎么选?极米H6 4K高亮定焦版成为首选

随着人们对生活品质越来越高的追求&#xff0c;更多的年轻人开始选择以投影仪取代传统电视。但当下国内外市场上的投影仪品牌和型号众多&#xff0c;如果预算在5000元左右&#xff0c;应该选择哪一款投影仪呢&#xff1f;大家如果不知如何选择&#xff0c;不妨试试极米科技近期…

Shadingsphere proxy 启动报错 Windows

Exception in thread "main" java.lang.NoClassDefFoundError 本来打算在本地电脑测试一下proxy的功能&#xff0c;使用的二进制安装包&#xff0c;没想到怎么都启动不起来&#xff0c;一直报找不到某个类的错误。我还以为是自身的配置有问题&#xff0c;等我copy了…

HCIE怎么系统性学习?这份HCIE学习路线帮你解决

华为认证体系覆盖ICT行业十一个技术领域共十三个技术方向的认证&#xff0c;今天我们分享的是其中最热门的数据通信方向的HCIE学习路线。 HCIE是华为认证体系中最高级别的ICT技术认证 &#xff0c;旨在打造高含金量的专家级认证&#xff0c;为技术融合背景下的ICT产业提供新的能…

淘宝价格监控-电商数据采集分析

一、什么是淘宝商品数据采集&#xff1f; 淘宝商品数据采集&#xff0c;顾名思义&#xff0c;就是通过技术手段对全网电商平台上的商品价格信息进行抓取并保存。通过将收集到的这些价格信息进行分析处理后得到该商品的成交价、折扣率等关键属性指标&#xff0c;从而为卖家提供…

C9对接板总成的核心组成部分及各自的应用场景

格雷希尔GripSeal针对一些新能源汽车行业设备集成商和终端客户的测试需求&#xff0c;逐步完善C9对接板总成的各个组成部分&#xff0c;为各种测试需求如&#xff1a;EOL测试、DCR测试、气密性测试等提供灵活的多品种共线方案。   C9对接板总成的构成图 我们的C9对接板总成的…

批量拍摄剪辑短视频,这几个实用又简单的拍摄技巧可以收藏学习

现在越来越多的朋友都当起了视频博主&#xff0c;自己来拍短视频&#xff0c;但说来简单&#xff0c;到了拍摄的时候&#xff0c;却有些无从下手&#xff0c;直接拿起手机就拍吗&#xff1f;是不是太平淡了&#xff1f;可自己又不会专业的拍摄技巧啊~ 今天来分享4个简单的拍摄…

基于本体的军事术语知识图谱构建方法

源自&#xff1a; 智汇杰瑞 “人工智能技术与咨询” 发布 摘要 1 军事术语知识图谱构建流程 ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ ※ 图1 军事术语知识图谱构建流程 2 军事术语本体构建 2.1 军事术语数据结构分析 2.2 军事术语本体设计 ※ ※ ※ ※ ※ ※ ※ ※…

【原创】java+swing+mysql志愿者管理系统设计与实现

摘要&#xff1a; 志愿者管理系统是一个用于管理志愿者以及活动报名的系统&#xff0c;提高志愿者管理的效率&#xff0c;同时为志愿者提供更好的服务和体验。本文主要介绍如何使用javaswingmysql去实现一个志愿者管理系统。 功能分析&#xff1a; 系统主要提供给管理员和志…