详细地址正则表达式

^.+(区|镇).+(路|街).+号.+号楼.+单元.+(室|户).*$

^.+(路|街).+号.+号楼.+单元.+(室|户).*$

^.+县.+(路|街).+号.+号楼.+单元.+(室|户).*$

^.+县.+(镇|乡).+(路|街).+号.+号楼.+单元.+(室|户).*$

^.+(区|镇).+小区.+号楼.+单元.+(室|户).*$

^.+小区.+号楼.+单元.+(室|户).*$

^.+县.+小区.+号楼.+单元.+(室|户).*$

^.+县.+(镇|乡).+小区.+号楼.+单元.+(室|户).*$

^.+(路|街|里).+号.+(室|户).*$

^.+(镇|乡).+村.+(组|屯).+号.*$

^.+(镇|乡|街).+(村|屯).+(组|号).*$

用符号 “|” 来连接上面的地址

@Test
    public void method(){
        List<String> list = new ArrayList<>();
//        String regexpLike = "^.+(区|镇).+(路|街).+号.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+(路|街).+号.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+县.+(路|街).+号.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+县.+(镇|乡).+(路|街).+号.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+(区|镇).+小区.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+小区.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+县.+小区.+号楼.+单元.+(室|户).*$" ;
//        String regexpLike = "^.+县.+(镇|乡).+小区.+号楼.+单元.+(室|户).*$" ;
        String regexpLike = "^.+(路|街|里).+号.+(室|户).*$" ;
//        String regexpLike = "^.+(镇|乡).+村.+(组|屯).+号.*$" ;
//        String regexpLike = "^.+(镇|乡|街).+(村|屯).+(组|号).*$" ;
        
        list.add(regexpLike);
        String address = "A区A路A号楼A单元A室";
        System.out.println(checkAddress(list,address));
        

    }
    
    private boolean checkAddress(List<String > rules, String address) 
    {
        boolean regexMatch = false;
        for (String addressRule : rules) {
            Pattern p = Pattern.compile(addressRule);
            Matcher m = p.matcher(address);
            if (m.find())
            {
                regexMatch = true;
                return regexMatch;
            }
        }
        return regexMatch;

    }
正则代码
原文地址:https://www.cnblogs.com/wenbuzhu/p/10038864.html