package com.sinfusi.cls.core.utils; 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 AddressResolutionUtils { public AddressResolutionUtils() { } public static Map<String, String> addressResolution(String address) { // String regex = "(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)(?<county>[^县]+县|.+区|.+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<village>.*)"; String regex ="(?<province>[^省]+省|.+自治区|上海市|北京市|天津市|重庆市|内蒙古|.+特别行政区)?(?<city>[^市]+市|.+自治州)(?<county>[^县]+县|.[^区]+区|.[^市]+市|.+旗|.+海域|.+岛)?(?<town>[^区]+区|.+镇)?(?<village>.*)"; Matcher m = Pattern.compile(regex).matcher(address); String province = null; String city = null; String county = null; String town = null; String village = null; List<Map<String, String>> table = new ArrayList(); LinkedHashMap row = null; while(m.find()) { row = new LinkedHashMap(); 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 (Map)table.get(0); } }
java 正则表达式匹配地址返回省市县等信息
最新推荐文章于 2024-06-21 15:27:17 发布