前言

本文主要介绍通过正则表达式匹配提取省市区,有完整的代码示例和详细的注释。

package com.importData;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;/*** @author xiang.wei* @create 2018/3/1 16:44*/
public class OriginTest {/*** 省*/private static final String PROVINCE = "省";/*** 市*/private static final String CITY = "市";/*** 区*/private static final String REGION_1 = "区";/*** 县*/private static final String REGION_2 = "县";public static void main(String[] args) {//        XX省XX市XX区;XX省XX市XX市;XX省XX市XX县;XX市XX区;XX市XX县
//        1.浙江省杭州市滨江区
//        2.上海上海市金山区
//        3.浙江省台州市玉环县
//        4.湖北省潜江市潜江经济开发区String[] placeList = new String[]{"浙江省杭州市滨江区","上海上海市金山区","浙江省台州市玉环县","湖北省潜江市潜江经济开发区","湖北省潜江市江汉石油管理局","湖北省天门市马湾镇"};for (String place : placeList) {System.out.println(addressResolution(place));}}/*** 解析地址* @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");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;}}

测试结果:

http://bbs.csdn.net/topics/392309227

正则表达式匹配提取省市区相关推荐

  1. python正则匹配ip地址_Python正则表达式匹配和提取IP地址

    Linux No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}.){3 ...

  2. python re正则提取ip地址_Python正则表达式匹配和提取IP地址

    No.1 IPv4 下面是IPv4的IP正则匹配实例: 简单的匹配给定的字符串是否是ip地址 import re if re.match(r"^(?:[0-9]{1,3}\.){3}[0-9 ...

  3. Python Re 正则表达式 数据匹配提取 基本使用

    Python re 正则表达式 数据匹配提取 基本使用 小洲提示:代码可直接复制在编译器中运行,方便更好的理解 文章目录 Python re 正则表达式 数据匹配提取 基本使用 前言 一.导入库,内置 ...

  4. python re正则提取ip地址_python 正则表达式匹配IP地址

    一.实验环境 1.Windows7x64_SP1 2.anaconda2.5.0 + python2.7(anaconda集成,不需单独安装) 3.pyinstaller3.0 二.实验目的 从tex ...

  5. java如何从地址串中解析提取省市区(完美匹配中国所有地址)

    https://download.csdn.net/download/cncjh/12249234 java如何从地址串中解析提取省市区(完美匹配中国所有地址) / 张生荣 java从地址串中解析提取 ...

  6. php省市区筛选,PHP利用正则表达式匹配省市区

    这次给大家带来PHP利用正则表达式匹配省市区,PHP利用正则表达式匹配省市区的注意事项有哪些,下面就是实战案例,一起来看一下.preg_match('/(.*?(省|自治区|北京市|天津市))+(.* ...

  7. 使用正则表达式匹配HTML 下各种title标签

    http://www.oschina.net/question/195686_46313 <title>标题</title> <title> 标题 </tit ...

  8. 正则表达式匹配多个字符串中的一个

    正则表达式匹配多个字符串中的一个 当我们采集数据时,会用到正则匹配功能 (前缀)(?<content>[\s\S]*?)(后缀) 例如采集产品多图时,前缀与后缀部分一般情况下是不相同的,这 ...

  9. java正则 链接_Java使用正则表达式匹配获取链接地址的方法示例

    本文实例讲述了Java使用正则表达式匹配获取链接地址的方法.分享给大家供大家参考,具体如下: 获取页面中字符串的url地址我们都会使用正则表达式来匹配获取了,下面我来给大家总结几个匹配获取链接地址示例 ...

最新文章

  1. JS无法获取display为none的隐藏元素的宽度和高度的解决方案
  2. 计算机科学与技术导论
  3. Matlab计算基站覆盖面积示例
  4. OpenCV PCA提取对象的方向的实例(附完整代码)
  5. 前端学习(1690):前端系列javascript之知识体系1
  6. 举牌人表情包使用nodejs实现
  7. CentOS/Ubuntu/Debian常用版本更换国内源的方法
  8. 蓝桥杯训练 2n皇后
  9. 网络通信第一课 C++封装HTTP请求报文说明
  10. 关于java中main方法为什么必须是静态的
  11. 动易访问mysql_服务器如何设置动易系统数据库路径的方法
  12. 详解Instant类
  13. Thumbnails压缩图片
  14. LVGL官方文档-7.11.0-5-Porting-Input device interface
  15. fixed income
  16. PM小课堂 项目管理中的甘特图妙用
  17. 动态表格案例 JavaScript
  18. 内网渗透-横向渗透2
  19. 【区块链技术工坊29期实录】小包总:SERO基于零知识证明的隐私保护公链解决方案
  20. 500天后是几几年几月几日

热门文章

  1. mysql建库sql语句_mysql建库和建表的sql语句
  2. Oracle 10G出现了tabel name类似 BIN$DEh5mRKIRGKvC6E+bQCawQ==$0 的表
  3. 广告制胜无它,顺应人性尔——leo鉴书63
  4. 联发科 helio g85相当于骁龙多少 联发科G85处理器怎么样
  5. vue中使用vue-typed-js
  6. 32/64位平台下char、short、int、long、指针等类型分别占多少字节
  7. 【跟李沐学AI学习笔记】数据操作
  8. selenium怎么定位/操作图片中的验证码?
  9. 泉州师范学院计算机课程表,泉州师范学院软学院 2010 级第 四 学期课程表.doc
  10. 朋友圈裂变营销活动怎么做?有什么玩法?裂变海报?积分