zoukankan      html  css  js  c++  java
  • 正则表达式匹配提取省市区

    package com.importData;
    
    import java.util.ArrayList;
    import java.util.LinkedHashMap;
    import java.util.List;
    import java.util.Map;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    
    public class OriginTest {
        /**
         * 省
         */
        private static final String PROVINCE = "省";
        /**
         * 市
         */
        private static final String CITY = "市";
        /**
         * 区
         */
        private static final String REGION_1 = "区";
        /**
         * 县
         */
        private static final String REGION_2 = "县";
    
        public static void main(String[] args) {
    //        XX省XX市XX区;XX省XX市XX市;XX省XX市XX县;XX市XX区;XX市XX县
    //        1.浙江省杭州市滨江区
    //        2.上海上海市金山区
    //        3.浙江省台州市玉环县
    //        4.湖北省潜江市潜江经济开发区
            String[] placeList = new String[]{"浙江省杭州市滨江区","上海上海市金山区","浙江省台州市玉环县","湖北省潜江市潜江经济开发区","湖北省潜江市江汉石油管理局","湖北省天门市马湾镇"};
            for (String place : placeList) {
                System.out.println(addressResolution(place));
            }
        }
    
        /**
         * 解析地址
         * @param address
         * @return
         */
        public static List<Map<String,String>> addressResolution(String address){
            String regex="((?<province>[^省]+省|.+自治区)|上海|北京|天津|重庆)(?<city>[^市]+市|.+自治州)(?<county>[^县]+县|.+区|.+镇|.+局)?(?<town>[^区]+区|.+镇)?(?<village>.*)";
            Matcher m=Pattern.compile(regex).matcher(address);
            String province=null,city=null,county=null,town=null,village=null;
            List<Map<String,String>> table=new ArrayList<Map<String,String>>();
            Map<String,String> row=null;
            while(m.find()){
                row=new LinkedHashMap<String,String>();
                province=m.group("province");
                row.put("province", province==null?"":province.trim());
                city=m.group("city");
                row.put("city", city==null?"":city.trim());
                county=m.group("county");
                row.put("county", county==null?"":county.trim());
                town=m.group("town");
                row.put("town", town==null?"":town.trim());
                village=m.group("village");
                row.put("village", village==null?"":village.trim());
                table.add(row);
            }
            return table;
        }
    
    }

    测试结果:

    这里写图片描述

  • 相关阅读:
    3. Longest Substring Without Repeating Characters
    2. Add Two Numbers
    1. Two Sum
    关于LSTM核心思想的部分理解
    常用正则表达式RE(慕课网_Meshare_huang)
    安装Keras出现的问题
    win系统下如何安装xgboost,开发环境是anaconda,以及这中间需要注意的问题
    Shell基础
    关机与重启命令
    压缩与解压缩命令
  • 原文地址:https://www.cnblogs.com/syp172654682/p/9252951.html
Copyright © 2011-2022 走看看