当前位置: 移动技术网 > IT编程>开发语言>Java > 025.2 正则表达式 练习

025.2 正则表达式 练习

2018年09月19日  | 移动技术网IT编程  | 我要评论

内容:对ip地址切割然后按数字排序;判断是不是邮箱;爬一个页面获取里面的邮箱地址

 

//#########练习1
对一段ip地址切割排序

private static void ipsort()
{
    string ip_source = "192.168.1.200   17.10.10.12    3.3.46.1  127.0.0.1";
    
    //ip每段前面补两个0
    ip_source = ip_source.replaceall("(\\d+)", "00$1");
    system.out.println(ip_source);
    
    //保留每段后面的3位
    ip_source = ip_source.replaceall("0*(\\d{3})", "$1");
    system.out.println(ip_source);
    
    string[] ips = ip_source.split(" +");
    
    arrays.sort(ips);
    
    for(string ip : ips){
        system.out.println(ip.replaceall("0*(\\d+)", "$1"));
    }
}

 

//##############
判断是不是邮箱地址

private static void checkmail()
{
    string mail = "abc123@sina.com";
    string regex = "\\w+@[a-za-z0-9]+(\\.[a-za-z]{2,3}){1,3}";
    boolean b = mail.matches(regex);
    system.out.println(mail+":"+b);

}

 

//########################
网页爬虫

public class netspider
{
    public static void main(string[] args) throws ioexception
    {
        file file = new file("mail.html");  //随便一个文件,里面放多一点邮箱就行了。因为暂时没到网页部分,所以直接这样处理
        
        string mailregex = "\\w+@\\w+(\\.\\w+)+";
        
        list<string> maillist = getmails(file,mailregex);
        
        for(string s: maillist){
            system.out.println(s);
        }
    }

    private static list<string> getmails(file file, string mailregex) throws ioexception
    {
        //1、读取数据
        bufferedreader bufr = new bufferedreader(new filereader(file));
        
        //2、将正则封装成对象
        pattern pt = pattern.compile(mailregex);
        
        //3、定义list集合
        list<string> list = new arraylist<string>();
        
        string line = null;
        while((line = bufr.readline()) != null){
            matcher mt = pt.matcher(line);
            while(mt.find()){
                list.add(mt.group());
            }
        }
        
        return list;
    }
}

mail.html 是随便一个贴吧很多邮箱的页面

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网