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

java正則表達(dá)式簡單使用和網(wǎng)頁爬蟲的制作代碼

 更新時(shí)間:2013年05月14日 14:39:17   作者:  
java正則表達(dá)式簡單使用和網(wǎng)頁爬蟲的制作代碼,需要的朋友可以參考一下

正則表達(dá)式是一種專門用于對(duì)字符串的操作的規(guī)則。

1.在String類中就有一些方法是對(duì)字符串進(jìn)行匹配,切割。

判斷字符串是否與給出的正則表達(dá)式匹配的:boolean matches( String regex);

按照給定的正則表達(dá)式對(duì)字符串進(jìn)行切割的:String[]    split(String regex);

將符合正則表達(dá)式的字符串替換成我們想要的其他字符串:String  replaceAll(String  regex,String replacement)


2.下面介紹一下正則表達(dá)式常用的用法

(1)

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

String regex="[1-9][0-9]{4,15}";
//[1-9]表示這個(gè)數(shù)字只能在1-9內(nèi)選擇
//[0-9]表示這個(gè)數(shù)字可以是0-9
//{4,15}表示其前面的這個(gè)格式的數(shù)字可以重復(fù)4-15次

這個(gè)正則表達(dá)式的意思 是:第一個(gè)數(shù)字應(yīng)該是1-9中任意的一個(gè),然后緊接著就必須要出現(xiàn)0-9中的數(shù)字中的一種,而且這種數(shù)字至少要出現(xiàn)4次,至多出現(xiàn)15次

如:

10175   符合 

10不符合,因?yàn)閇0-9]{4,15},至少要出現(xiàn)4次以上,在這里只出現(xiàn)了一次

(2)

[a-zA-Z0-9_]{6}表示恰好要出現(xiàn)6次a-z或A-Z或_  中的字符

+表示至少出現(xiàn)一次

*表示出現(xiàn)0次或多次

?表示出現(xiàn)一次或0次


(3)根據(jù)正則表達(dá)式來切割字符串

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

String str="sjd.ksdj.skdjf";

String regex="\\.";


注意:  . 在正則表達(dá)式中是表式一個(gè)任意的字符,是一個(gè)特殊的符號(hào)。我們想要用.來切割,就必須將其轉(zhuǎn)換為普通字符 用\\即可。

因?yàn)閈 也是特殊符號(hào),所以要兩個(gè)\\來表示。當(dāng)我們想要使用普通的 \ 時(shí),那么就要用\\\\來表示才可。

String[] ss=str.split(regex); 返回字符串?dāng)?shù)組: "sjd"  "ksdj"  "skdjf"  實(shí)現(xiàn) 了對(duì)原有字符串的切割

(4)根據(jù)正則表達(dá)式來替換掉我們想要替換的東西

將字符串中所有連續(xù)出現(xiàn)5個(gè)或以上的數(shù)字串替換成#

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

String str="abcd1334546lasjdfldsf2343424sdj";

String regex="[0-9]{5,}";

String   newstr=str.replaceAll(regex,"#");

(5)獲取符合正則表達(dá)式規(guī)則的字符串

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

Pattern p=Pattern.compile(String regex);

Matcher  m=p.matcher(String str);

while(m.find())

{

System.out.println(m.group());

}

3.網(wǎng)頁爬蟲的制作

我們制作 一個(gè)可以將一個(gè)網(wǎng)頁中的全部的郵箱讀取出,并且存放在一個(gè)文本文件中。

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

/*
網(wǎng)頁爬蟲
即:從網(wǎng)頁中獲取符合正則表達(dá)式的字符串或內(nèi)容

從網(wǎng)絡(luò)中獲取郵箱地址
*/
import java.io.*;
import java.util.regex.*;
import java.net.*;
class  MailTest
{
 public static void main(String[] args) throws Exception
 {
  getMailAddr();
 }

 public static void getMailAddr()throws Exception
 {
  URL url=new URL("http://bbs.jb51.net/topics/390148495");
  URLConnection con=url.openConnection();

  BufferedReader bufIn=new BufferedReader(new InputStreamReader(con.getInputStream()));
  BufferedWriter bufw=new BufferedWriter(new FileWriter(new File("e://mailaddress.txt")));
  String str=null;
  String regex="[a-zA-Z0-9_]{6,12}@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";

  Pattern p=Pattern.compile(regex);
  while((str=bufIn.readLine())!=null)
  {
   Matcher m=p.matcher(str);
   while(m.find())
   {
    String ss=m.group();
    bufw.write(ss,0,ss.length());
    bufw.newLine();
    bufw.flush();
   }
  }


 }
}

相關(guān)文章

  • Java對(duì)象比較之equals與hashCode詳解

    Java對(duì)象比較之equals與hashCode詳解

    這篇文章主要介紹了Java對(duì)象比較之equals與hashCode詳解,equals?方法和?hashCode?方法是?Object?類中的兩個(gè)基礎(chǔ)方法,它們共同協(xié)作來判斷兩個(gè)對(duì)象是否相等,需要的朋友可以參考下
    2023-12-12
  • 詳解SpringMVC學(xué)習(xí)系列(6) 之 數(shù)據(jù)驗(yàn)證

    詳解SpringMVC學(xué)習(xí)系列(6) 之 數(shù)據(jù)驗(yàn)證

    這篇文章主要介紹了詳解SpringMVC學(xué)習(xí)系列(6) 之 數(shù)據(jù)驗(yàn)證 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2016-12-12
  • 基于spring同名bean覆蓋問題的解決

    基于spring同名bean覆蓋問題的解決

    這篇文章主要介紹了spring同名bean覆蓋問題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-09-09
  • 原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼

    原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼

    這篇文章主要介紹了原生java代碼實(shí)現(xiàn)碼云第三方驗(yàn)證登錄的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • java使用回溯法求解數(shù)獨(dú)示例

    java使用回溯法求解數(shù)獨(dú)示例

    這篇文章主要介紹了java使用回溯法求解數(shù)獨(dú)示例,大家參考使用吧
    2014-01-01
  • 簡單易懂講解happens-before原則

    簡單易懂講解happens-before原則

    Java內(nèi)存模型中的happens-before是什么?為什么會(huì)有這東西的存在?一個(gè)新東西肯定是上手先,但是等我們空下來回過頭來,我們還是需要去理解這些知識(shí),只有這樣我才能深刻的記住,并且運(yùn)用熟練。下來和小編來一起學(xué)習(xí)下
    2019-05-05
  • 新手初學(xué)Java常見排序算法

    新手初學(xué)Java常見排序算法

    排序(Sorting) 是計(jì)算機(jī)程序設(shè)計(jì)中的一種重要操作,它的功能是將一個(gè)數(shù)據(jù)元素(或記錄)的任意序列,重新排列成一個(gè)關(guān)鍵字有序的序列
    2021-07-07
  • 詳解Spring Boot自動(dòng)裝配的方法步驟

    詳解Spring Boot自動(dòng)裝配的方法步驟

    這篇文章主要介紹了詳解Spring Boot自動(dòng)裝配的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • 詳解Maven optional關(guān)鍵字透徹圖解

    詳解Maven optional關(guān)鍵字透徹圖解

    這篇文章主要介紹了詳解Maven optional關(guān)鍵字透徹圖解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • jmeter正則表達(dá)式提取器的用法與正則詳解

    jmeter正則表達(dá)式提取器的用法與正則詳解

    在使用Jmeter過程中,會(huì)經(jīng)常使用到正則表達(dá)式提取器提取器,下面這篇文章主要給大家介紹了關(guān)于jmeter正則表達(dá)式提取器的用法與正則的相關(guān)資料,需要的朋友可以參考下
    2022-07-07

最新評(píng)論

郧西县| 博爱县| 崇仁县| 威宁| 庆城县| 福泉市| 三穗县| 宁夏| 贵南县| 嵩明县| 金溪县| 鹿泉市| 化州市| 鸡东县| 西乌| 通城县| 鄂尔多斯市| 怀远县| 保山市| 广南县| 调兵山市| 临清市| 固镇县| 酒泉市| 江陵县| 吉安县| 海丰县| 石阡县| 策勒县| 东城区| 潍坊市| 淄博市| 元江| 始兴县| 乐业县| 惠安县| 绥化市| 武川县| 大邑县| 荆门市| 赤水市|