java正則表達式婚配網頁一切網址和鏈接文字的示例。本站提示廣大學習愛好者:(java正則表達式婚配網頁一切網址和鏈接文字的示例)文章只能為提供參考,不一定能成為您想要的結果。以下是java正則表達式婚配網頁一切網址和鏈接文字的示例正文
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.net.*;
import java.io.*;
import java.util.regex.*;
/*
依據指定的規矩,經由過程結構正則表達式獲得網址
*/
public class Urls
{
private String startUrl; //開端收集網址
String urlContent;
String ContentArea;
private String strAreaBegin ,strAreaEnd ; //收集區域開端收集字符串和停止收集字符串
private String stringInUrl,stringNotInUrl;
String strContent;//取得的收集內容
String[] allUrls; //收集到的一切網址
private String regex; //收集規矩
UrlAndTitle urlAndTitle=new UrlAndTitle(); //存儲網址和題目
public static void main(String[] args)
{
Urls myurl=new Urls("<body","/body>");
myurl.getStartUrl("http://www.zuzwn.com/");
myurl.getUrlContent();
myurl.getContentArea();
myurl.getStartUrl("http://www.zuzwn.com/");
myurl.getStringNotInUrl("谷歌");
myurl.Urls();
//System.out.println("startUrl:"+myurl.startUrl);
//System.out.println("urlcontent:"+myurl.urlContent);
//System.out.println("ContentArea:"+myurl.ContentArea);
}
//初始化結構函數 strAreaBegin 和strAreaEnd
public Urls (String strAreaBegin,String strAreaEnd)
{
this.strAreaBegin=strAreaBegin;
this.strAreaEnd=strAreaEnd;
}
//
public void Urls()
{
int i=0;
//String regex ="<a href="?'?http://[a-zA-Z0-9]+/.[a-zA-Z0-9]+/.[a-zA-Z]+/?[/.?[/S|/s]]+[a>]$";
String regex ="<a.*?/a>";
//String regex ="http://.*?>";
Pattern pt=Pattern.compile(regex);
Matcher mt=pt.matcher(ContentArea);
while(mt.find())
{
System.out.println(mt.group());
i++;
//獲得題目
Matcher title=Pattern.compile(">.*?</a>").matcher(mt.group());
while(title.find())
{
System.out.println("題目:"+title.group().replaceAll(">|</a>",""));
}
//獲得網址
Matcher myurl=Pattern.compile("href=.*?>").matcher(mt.group());
while(myurl.find())
{
System.out.println("網址:"+myurl.group().replaceAll("href=|>",""));
}
System.out.println();
}
System.out.println("共有"+i+"個相符成果");
}
//取得開端收集網址
public void getStartUrl(String startUrl)
{
this.startUrl=startUrl;
}
//取得網址地點內容;
public void getUrlContent()
{
StringBuffer is=new StringBuffer();
try
{
URL myUrl=new URL(startUrl);
BufferedReader br= new BufferedReader(
new InputStreamReader(myUrl.openStream()));
String s;
while((s=br.readLine())!=null)
{
is.append(s);
}
urlContent=is.toString();
}
catch(Exception e)
{
System.out.println("網址文件未能輸入");
e.printStackTrace();
}
}
//取得網址地點的婚配區域部門
public void getContentArea()
{
int pos1=0,pos2=0;
pos1= urlContent.indexOf(strAreaBegin)+strAreaBegin.length();
pos2=urlContent.indexOf(strAreaEnd,pos1);
ContentArea=urlContent.substring(pos1,pos2);
}
//以下兩個函數取得網址應當要包括的症結字及不克不及包括的症結字
//這裡只做初步的試驗。前期,掩護的症結字及不克不及包括的症結字應當是不只一個的。
public void getStringInUrl(String stringInUrl)
{
this.stringInUrl=stringInUrl;
}
public void getStringNotInUrl(String stringNotInUrl)
{
this.stringNotInUrl=stringNotInUrl;
}
//獲得收集規矩
//獲得url網址
public void getUrl()
{
}
public String getRegex()
{
return regex;
}
class UrlAndTitle
{
String myURL;
String title;
}
}