**在项目中碰到地址数据不规范需要处理,网上看了一些博客,找到了几个demo,
这里做了一些修改,对省市区等数据匹配时可为空**
java利用正则表达式对不规则地址进行匹配处理
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 AddressResolution {
/**
* 解析地址
* @param address
* @return
*/
public static List<Map<String,String>> addressResolution(String address){
/*
* java.util.regex是一个用正则表达式所订制的模式来对字符串进行匹配工作的类库包。它包括两个类:Pattern和Matcher Pattern
* 一个Pattern是一个正则表达式经编译后的表现模式。 Matcher
* 一个Matcher对象是一个状态机器,它依据Pattern对象做为匹配模式对字符串展开匹配检查。
* 首先一个Pattern实例订制了一个所用语法与PERL的类似的正则表达式经编译后的模式,然后一个Matcher实例在这个给定的Pattern实例的模式控制下进行 * 字符串的匹配工作。
*/
String regex="(?<province>[^省]+自治区|.*?省|.*?行政区|.*?市)?(?<city>[^市]+自治州|.*?地区|.*?行政单位|.+盟|市辖区|.*?市|.*?县)?(?<c
java利用正则表达式对不规则地址进行匹配处理,提取省市区数据。
最新推荐文章于 2024-01-09 15:32:03 发布