正则表达式,网页爬虫(二)

2014-11-24 02:50:36 · 作者: · 浏览: 1
ail+":"+b); } /* * 1,治口吃。 */ public static void test_1(){ String str = "我我...我我...我我我要...要要要要...要要要要..学学学学学...学学编编...编编编编..编..程程...程程...程程程"; //1,将字符串中.去掉。 用替换。 str = str.replaceAll("\\.+", ""); System.out.println(str); //2,替换叠词。 str = str.replaceAll("(.)\\1+", "$1"); System.out.println(str); } /* * ip地址排序。 * * 192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55 */ public static void test_2(){ String ip_str = "192.168.10.34 127.0.0.1 3.3.3.3 105.70.11.55"; //1,为了让ip可以按照字符串顺序比较,只要让ip的每一段的位数相同。 //所以,补零,按照每一位所需做多0进行补充。每一段都加两个0. ip_str = ip_str.replaceAll("(\\d+)", "00$1"); System.out.println(ip_str); //然后每一段保留数字3位。 ip_str = ip_str.replaceAll("0*(\\d{3})", "$1"); System.out.println(ip_str); //1,将ip地址切出。 String[] ips = ip_str.split(" +"); TreeSet ts = new TreeSet (); for(String ip : ips){ // System.out.println(ip); ts.add(ip); } for(String ip : ts){ System.out.println(ip.replaceAll("0*(\\d+)", "$1")); } } }

网页爬虫

package cn.itcast.regex.test;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;


/*
 * 网页爬虫:其实就一个程序用于在互联网中获取符合指定规则的数据。 
 * 
 * 爬取邮箱地址。 
 * 
 */
public class RegexTest2 {

	/**
	 * @param args
	 * @throws IOException 
	 */
	public static void main(String[] args) throws IOException {

		
		List
  
    list = getMailsByWeb();
		
		for(String mail : list){
			System.out.println(mail);
		}
	}
	
	public static List
   
     getMailsByWeb() throws IOException { //1,读取源文件。 // BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.
    html")); URL url = new URL("http://192.168.1.100:8080/myweb/mail.html"); BufferedReader bufIn = new BufferedReader(new InputStreamReader(url.openStream())); //2,对读取的数据进行规则的匹配。从中获取符合规则的数据. String mail_regex = "\\w+@\\w+(\\.\\w+)+"; List
    
      list = new ArrayList
     
      (); Pattern p = Pattern.compile(mail_regex); String line = null; while((line=bufIn.readLine())!=null){ Matcher m = p.matcher(line); while(m.find()){ //3,将符合规则的数据存储到集合中。 list.add(m.group()); } } return list; } public static List
      
        getMails() throws IOException{ //1,读取源文件。 BufferedReader bufr = new BufferedReader(new FileReader("c:\\mail.html")); //2,对读取的数据进行规则的匹配。从中获取符合规则的数据. String mail_regex = "\\w+@\\w+(\\.\\w+)+"; List
       
         list = new ArrayList
        
         (); Pattern p = Pattern.compile(mail_regex); String line = null; while((line=bufr.readLine())!=null){ Matcher m = p.matcher(line); while(m.find()){ //3,将符合规则的数据存储到集合中。 list.add(m.group()); } } return list; } }