2024-05-25
温故知新
00

目录

Java正则--地址结构化解析

Java正则--地址结构化解析

java
public static Map<String, String> addressResolution(String address) { String regex = "(?<province>.*?自治区|.*?省|.*?行政区|.*?市)(?<city>.*?自治州|.*?地区|.*?行政单位|市辖区|.*?市)?(?<county>.*?市|.*?县|.*?区)?(?<village>.*)"; Matcher m = Pattern.compile(regex).matcher(address); String province, city, county, village; Map<String, String> row = null; while (m.find()) { row = new LinkedHashMap<>(); province = StringUtils.isNotBlank(m.group("province")) ? m.group("province").trim() : ""; row.put("province", StringUtils.isEmpty(province) ? address : province); city = StringUtils.isNotBlank(m.group("city")) ? m.group("city").trim() : ""; row.put("city", StringUtils.isEmpty(city) ? province : city); county = StringUtils.isNotBlank(m.group("county")) ? m.group("county").trim() : ""; row.put("county", StringUtils.isEmpty(county) ? city : county); village = StringUtils.isNotBlank(m.group("village")) ? m.group("village").trim() : ""; row.put("village", StringUtils.isEmpty(village) ? county : village); } if (row == null) { row = new LinkedHashMap<>(); row.put("village", address); } return row; } public static void main(String[] args) { System.out.println(addressResolution("山东省潍坊市昌邑市龙源国际小区")); }
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:DingDangDog

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!