正規表現は身分証明書の住所によって省市、区県、郷鎮、コミュニティ、村名を取得する

1582 ワード

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;

        }


}