java实现行政区域划分,行政区划正则表达式匹配规则及java实现

行政区划正则表达式匹配规则及java实现

行政区划正则表达式匹配规则及java实现

(.*?省|.*?市|.*?自治区)?(.*?市|.*?县|.*?区|.*?自治州)?(.*?县|.*?区)(.*?小区|.*?村)(.*?号楼|.*?楼|.*?栋|.*?组|.*?号)?(.*)

简单的正则规则如上,不是实际生产环境用的,实际用比这要复杂的多,

复制上面的正则,到https://regexper.com 看一下规则,展示效果如下:

716b1f296d13abbe250a14e6cd97d40a.png

按照自己项目里面的需要,调整的满足要求后复制到java代码里面使用,java代码

public static List> addressResolution(String address){

String regex="(?.*?省|.*?市)?(?.*?市|.*?县|.*?区)?(?.*?市|.*?县|.*?区)(?.*?小区|.*?村)(?.*?号楼|.*?楼|.*?栋|.*?队|.*?组|.*?号|.*?室)?(?.*)"; //不要直接用这个,这个是经过大量精简后的

String province=null, city=null,county=null,town=null,village=null,building=null,other=null;

List> table=new ArrayList>();

Map row=null;

Matcher m=Pattern.compile(regex).matcher(address);

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());

village=m.group("village");

row.put("village", village==null?"":village.trim());

building=m.group("building");

row.put("building", building==null?"":building.trim());

other=m.group("other");

row.put("other", other==null?"":other.trim());

table.add(row);

}

return table;

}

测试

System.out.println(addressResolution("黑龙江省大庆市测试县测试镇测试村测试队11号"));

行政区划正则表达式匹配规则及java实现相关教程

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值