地址串提取城市

package com.haiyisoft.base;

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 addresss {
public static void main(String[] args) {
List<Map<String, String>> CC = addressResolution("天津市滨海新区第四大街59号");
List<Map<String, String>> CC1 = addressResolution("山东省东营市广饶县");
List<Map<String, String>> CC2 = addressResolution("新疆维吾尔自治区乌鲁木齐市天山区青年街道北巷28号");
}
/**
* 解析地址
* @author lin
* @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");
System.out.println("城市"+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;
}
}

原文地址:https://www.cnblogs.com/zhangzhiqin/p/9209247.html