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

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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值