最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java正則表達(dá)式匹配網(wǎng)頁所有網(wǎng)址和鏈接文字的示例

 更新時(shí)間:2014年03月21日 14:53:21   作者:  
這篇文章主要介紹了java正則表達(dá)式匹配網(wǎng)頁所有網(wǎng)址和鏈接文字java正則表達(dá)式匹配,需要的朋友可以參考下

復(fù)制代碼 代碼如下:

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.*;

/*
根據(jù)指定的規(guī)則,通過構(gòu)造正則表達(dá)式獲取網(wǎng)址
*/

public class Urls
{
    private String startUrl;                                         //開始采集網(wǎng)址
    String  urlContent;
    String ContentArea;
    private String strAreaBegin ,strAreaEnd ;            //采集區(qū)域開始采集字符串和結(jié)束采集字符串
    private String stringInUrl,stringNotInUrl;       
    String strContent;//獲得的采集內(nèi)容
    String[] allUrls;                                                            //采集到的所有網(wǎng)址
    private String  regex;                                                 //采集規(guī)則

    UrlAndTitle   urlAndTitle=new UrlAndTitle();    //存儲(chǔ)網(wǎng)址和標(biāo)題                   

   
    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("google");
         myurl.Urls();

        //System.out.println("startUrl:"+myurl.startUrl);
        //System.out.println("urlcontent:"+myurl.urlContent);
        //System.out.println("ContentArea:"+myurl.ContentArea);

    }

   
    //初始化構(gòu)造函數(shù) 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++;

                 //獲取標(biāo)題
                 Matcher title=Pattern.compile(">.*?</a>").matcher(mt.group());
                 while(title.find())
                 {
                      System.out.println("標(biāo)題:"+title.group().replaceAll(">|</a>",""));
                 }

                 //獲取網(wǎng)址
                 Matcher myurl=Pattern.compile("href=.*?>").matcher(mt.group());
                 while(myurl.find())
                 {
                      System.out.println("網(wǎng)址:"+myurl.group().replaceAll("href=|>",""));
                 }

                 System.out.println();

                
         }

        System.out.println("共有"+i+"個(gè)符合結(jié)果");

    }   

    //獲得開始采集網(wǎng)址
    public void getStartUrl(String startUrl)
    {
        this.startUrl=startUrl;
    }

    //獲得網(wǎng)址所在內(nèi)容;
    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("網(wǎng)址文件未能輸出");
        e.printStackTrace();
    }

       
    }

   
    //獲得網(wǎng)址所在的匹配區(qū)域部分
    public void getContentArea()
    {
         int pos1=0,pos2=0;
         pos1= urlContent.indexOf(strAreaBegin)+strAreaBegin.length();
         pos2=urlContent.indexOf(strAreaEnd,pos1);
         ContentArea=urlContent.substring(pos1,pos2);
    }

    //以下兩個(gè)函數(shù)獲得網(wǎng)址應(yīng)該要包含的關(guān)鍵字及不能包含的關(guān)鍵字
    //這里只做初步的實(shí)驗(yàn)。后期,保護(hù)的關(guān)鍵字及不能包含的關(guān)鍵字應(yīng)該是不只一個(gè)的。
    public void getStringInUrl(String stringInUrl)
    {
         this.stringInUrl=stringInUrl;       

    }

    public void getStringNotInUrl(String stringNotInUrl)
    {
        this.stringNotInUrl=stringNotInUrl;
    }

    //獲取采集規(guī)則

    //獲取url網(wǎng)址
    public void getUrl()
    {

    }

    public String getRegex()
    {
        return regex;

    }

    class UrlAndTitle
    {
        String myURL;
        String title;
    }
}

相關(guān)文章

  • Mybatis優(yōu)化檢索的方法詳解

    Mybatis優(yōu)化檢索的方法詳解

    MyBatis是一款優(yōu)秀的基于Java的持久層框架,它可以將 SQL 語句和數(shù)據(jù)庫中的記錄映射成為 Java 對象,并且支持靈活的 SQL 查詢語句,在Mybatis中,可以使用動(dòng)態(tài)SQL來靈活構(gòu)造SQL語句,從而滿足各種不同的檢索需求,本文介紹Mybatis如何優(yōu)化檢索,需要的朋友可以參考下
    2024-05-05
  • 解讀String字符串拼接的原理

    解讀String字符串拼接的原理

    這篇文章主要介紹了關(guān)于String字符串拼接的原理,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • spring data jpa @Query注解中delete語句報(bào)錯(cuò)的解決

    spring data jpa @Query注解中delete語句報(bào)錯(cuò)的解決

    這篇文章主要介紹了spring data jpa @Query注解中delete語句報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • Hadoop源碼分析三啟動(dòng)及腳本剖析

    Hadoop源碼分析三啟動(dòng)及腳本剖析

    本篇是Hadoop源碼分析系列文章第三篇,主要介紹Hadoop啟動(dòng)以及腳本的剖析,后續(xù)本系列文章會(huì)持續(xù)更新,有需要的朋友可以借鑒參考下
    2021-09-09
  • java中Arrays.sort()排序方法舉例詳解

    java中Arrays.sort()排序方法舉例詳解

    這篇文章主要給大家介紹了關(guān)于java中Arrays.sort()排序方法舉例詳解的相關(guān)資料,Java?Arrays.sort()方法對數(shù)組進(jìn)行排序,通常情況下直接傳入數(shù)組,默認(rèn)升序排序,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • @Scheduled在springboot中的使用方式

    @Scheduled在springboot中的使用方式

    這篇文章主要介紹了@Scheduled在springboot中的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • IDEA中的JFormDesigner使用小結(jié)

    IDEA中的JFormDesigner使用小結(jié)

    JFormDesigner是一款用于設(shè)計(jì)和創(chuàng)建圖形用戶界面的插件,本文主要介紹了IDEA中的JFormDesigner使用小結(jié),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-01-01
  • java自動(dòng)裝箱拆箱深入剖析

    java自動(dòng)裝箱拆箱深入剖析

    基本數(shù)據(jù)(Primitive)類型的自動(dòng)裝箱(autoboxing)、拆箱(unboxing)是自J2SE 5.0開始提供的功能。java語言規(guī)范中說道:在許多情況下包裝與解包裝是由編譯器自行完成的(在這種情況下包裝成為裝箱,解包裝稱為拆箱)
    2012-11-11
  • SpringBoot使用validation做參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟

    SpringBoot使用validation做參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟

    這篇文章主要介紹了SpringBoot使用validation做參數(shù)校驗(yàn)的實(shí)現(xiàn)步驟,幫助大家更好的理解和學(xué)習(xí)使用SpringBoot,感興趣的朋友可以了解下
    2021-05-05
  • SpringBoot2.0 整合 Dubbo框架實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用方法

    SpringBoot2.0 整合 Dubbo框架實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用方法

    這篇文章主要介紹了SpringBoot2.0 整合 Dubbo框架 實(shí)現(xiàn)RPC服務(wù)遠(yuǎn)程調(diào)用 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07

最新評論

望城县| 乐业县| 定远县| 乌拉特前旗| 塔河县| 龙山县| 福清市| 谷城县| 巩义市| 舞钢市| 梁平县| 富平县| 仁寿县| 桑日县| 子洲县| 仁怀市| 泸州市| 金沙县| 保康县| 射阳县| 通榆县| 连江县| 黄龙县| 岑溪市| 滨海县| 卓尼县| 中方县| 井陉县| 怀集县| 福鼎市| 云林县| 宝清县| 安西县| 卫辉市| 黄龙县| 固安县| 汝阳县| 咸阳市| 旌德县| 盐亭县| 阿荣旗|