Java正则表达式IP地址和邮箱匹配

来源:互联网 发布:淘宝数据分析教程 编辑:程序博客网 时间:2024/05/17 06:11
package com.regex;import java.util.Arrays;public class RegexTest {    public static void main(String[] args) {        /*         * 案例一:         * "23.2.2.2     192.168.1.1    3.4.56.78"         * 要求将这些ip按照顺序进行排序。         *          * 思路:         * 1,将ip通过空格切割         * 2,对ip进行排序,通过字符串字典顺序排序,这个顺序是错的         * 原因:每个ip有四段,每一段最多三位。应该按照位数比较才是对的         * 所以应该将每一段都补足三位,不满足的用0填充,这样比较字典顺序才是对的         * 怎么补0呢?每一段的位数不同,补0 的个数也不一样。         * 技巧:干脆按照所需的最多的0的个数来补。每一段都补两个0         * 有的地址多了,取每一段的最后三位         */        test1();        /*         * 案例二:         * 对邮箱地址的校验,只校验格式         */        test2();    }    private static void test2() {        String mail = "qwer123456df@163.cn.com";        //"\\w+@\\w+(\\.\\w+)+"这是笼统式的校验        String regex = "[a-zA-Z_0-9]+@[a-zA-Z0-9]+(\\.[a-zA-Z]{2,3}){1,}";        boolean b= mail.matches(regex);        System.out.println(mail+":"+b);    }    public static void test1() {        // TODO Auto-generated method stub        String ip_str="23.2.2.2     192.168.1.1    3.4.56.78";        ip_str = ip_str.replaceAll("(\\d+)", "00$1");        System.out.println(ip_str);        //0023.002.002.002     00192.00168.001.001    003.004.0056.0078        ip_str = ip_str.replaceAll("0*(\\d{3})", "$1");        System.out.println(ip_str);        //023.002.002.002     192.168.001.001    003.004.056.078        String[] ips = ip_str.split(" +");        Arrays.sort(ips);        for(String ip:ips){            System.out.println(ip.replaceAll("0*(\\d+)", "$1"));//去0        }//      String[] ips = ip_str.split(" +");//      Arrays.sort(ips);//直接这样是错的//      for(String ip:ips){//          System.out.println(ip);//      }    }}
0 0