正则表达式 根据身份证地址获取省市、区县、乡镇、社区、村名

Java代码


import java.util.LinkedHashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author yang
 * @Title: TestMain.java
 * @Package 
 * @Description: 测试方法
 * @date 2018年11月21日 9:41
 */
public class TestMain {

    public static void main(String[] args) {
        String address = "北京市朝阳区青年北路188号";
        System.out.println( addressResolution(address).toString());
    }


        public static Map addressResolution(String address) {
            String regex="(?[^自治州]+自治州|[^市]+市|[^盟]+盟|[^地区]+地区|.+区划)(?[^市]+市|[^县]+县|[^旗]+旗|.+区)?(?[^区]+区|.+镇|.+乡)?(?.*)";
            Matcher m=Pattern.compile(regex).matcher(address);
            String province=null,city=null,county=null,town=null,village=null;
            Map row=null;
            while(m.find()){
                row=new LinkedHashMap();
                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());
            }
            return row;

        }


}

 

你可能感兴趣的:(Java)