省市区解析方法--正则

	private Map<String, LibArea> parseProvince(String provinces){
		Map<String, LibArea> result = new HashMap<>();
		String regex="(?<province>[^省]+省|.+自治区)(?<city>[^自治州]+自治州|[^市]+市|[^盟]+盟|[^地区]+地区|.+区划)(?<county>[^市]+市|[^县]+县|[^旗]+旗|.+区)?(?<town>[^区]+区|.+镇)?(?<village>.*)";
		Matcher m= Pattern.compile(regex).matcher(provinces);
		String province = null;
		String city = null;
		String county = null;
		while (m.find()) {
			province=m.group("province");
			city=m.group("city");
			county=m.group("county");
		}
		LibArea libAreaProvice = null;
		LibArea libAreaCity = null;
		LibArea libAreaCounty = null;
		if(province!=null&&city!=null&&county!=null){
			province = province.trim();
			city = city.trim();
			county = county.trim();
			LibArea libArea1 = new LibArea();
			libArea1.setLevelType(1);
			libArea1.setName(province);
			libAreaProvice = libAreaMapper.getByLibArea(libArea1);
			if(libAreaProvice!=null){
				LibArea libArea2 = new LibArea();
				libArea2.setLevelType(2);
				libArea2.setName(city);
				libArea2.setParentId(libAreaProvice.getId());
				libAreaCity = libAreaMapper.getByLibArea(libArea2);
				if (libAreaCity != null) {
					LibArea libArea3 = new LibArea();
					libArea3.setLevelType(3);
					libArea3.setName(county);
					libArea3.setParentId(libAreaCity.getId());
					libAreaCounty = libAreaMapper.getByLibArea(libArea3);
				}
			}
		}
		result.put("province", libAreaProvice);
		result.put("city", libAreaCity);
		result.put("county", libAreaCounty);
		return result;
	}
发布了10 篇原创文章 · 获赞 2 · 访问量 9260

猜你喜欢

转载自blog.csdn.net/VincentLee7/article/details/87622361