欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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


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

(1)

復制代碼 代碼如下:

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

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

如:

10175   符合 

10不符合,因為[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ù)正則表達式來切割字符串

復制代碼 代碼如下:

String str="sjd.ksdj.skdjf";

String regex="\\.";


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

因為\ 也是特殊符號,所以要兩個\\來表示。當我們想要使用普通的 \ 時,那么就要用\\\\來表示才可。

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

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

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

復制代碼 代碼如下:

String str="abcd1334546lasjdfldsf2343424sdj";

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

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

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

復制代碼 代碼如下:

Pattern p=Pattern.compile(String regex);

Matcher  m=p.matcher(String str);

while(m.find())

{

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

}

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

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

復制代碼 代碼如下:

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

從網(wǎng)絡中獲取郵箱地址
*/
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)文章

  • Spring Boot整合mybatis使用注解實現(xiàn)動態(tài)Sql、參數(shù)傳遞等常用操作(實現(xiàn)方法)

    Spring Boot整合mybatis使用注解實現(xiàn)動態(tài)Sql、參數(shù)傳遞等常用操作(實現(xiàn)方法)

    這篇文章主要介紹了Spring Boot整合mybatis使用注解實現(xiàn)動態(tài)Sql、參數(shù)傳遞等常用操作(實現(xiàn)方法),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Mybatis下劃線駝峰處理的幾種方法

    Mybatis下劃線駝峰處理的幾種方法

    這篇文章主要講述Mybatis下劃線駝峰處理的幾種方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-12-12
  • Java幾種常用的斷言風格你怎么選

    Java幾種常用的斷言風格你怎么選

    這篇文章主要介紹了Java幾種常用的斷言風格你怎么選,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 通過實例解析spring環(huán)繞通知原理及用法

    通過實例解析spring環(huán)繞通知原理及用法

    這篇文章主要介紹了通過實例解析spring環(huán)繞通知原理及用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • 解決idea 暫存文件或idea切換分支代碼丟失的問題

    解決idea 暫存文件或idea切換分支代碼丟失的問題

    這篇文章主要介紹了解決idea 暫存文件或idea切換分支代碼丟失的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Springboot把外部依賴包納入Spring容器管理的兩種方式

    Springboot把外部依賴包納入Spring容器管理的兩種方式

    這篇文章主要給大家介紹了Springboot把外部依賴包納入Spring容器管理的兩種方式,Spring.factories和org.springframework.boot.autoconfigure.AutoConfiguration.imports,有感興趣的小伙伴可以參考閱讀本文
    2023-07-07
  • Java中的EnumMap集合解析

    Java中的EnumMap集合解析

    這篇文章主要介紹了Java中的EnumMap集合解析,EnumMap是Map接口的一種實現(xiàn),專門用于枚舉類型的鍵,所有枚舉的鍵必須來自同一個枚舉,
    EnumMap不允許鍵為空,允許值為空,需要的朋友可以參考下
    2023-09-09
  • Java Fluent Mybatis實戰(zhàn)之構(gòu)建項目與代碼生成篇下

    Java Fluent Mybatis實戰(zhàn)之構(gòu)建項目與代碼生成篇下

    Java中常用的ORM框架主要是mybatis, hibernate, JPA等框架。國內(nèi)又以Mybatis用的多,基于mybatis上的增強框架,又有mybatis plus和TK mybatis等。今天我們介紹一個新的mybatis增強框架 fluent mybatis
    2021-10-10
  • Java項目工程代碼深度刨析總結(jié)

    Java項目工程代碼深度刨析總結(jié)

    一個項目工程里的代碼是怎樣的呢?對于初學者或者沒有參與過項目的零經(jīng)驗同學這都是未知且讓人好奇的,本篇文章帶你一探究竟,踏入真實項目的大門
    2022-08-08
  • Java中保留兩位小數(shù)的四種方法實現(xiàn)實例

    Java中保留兩位小數(shù)的四種方法實現(xiàn)實例

    今天小編就為大家分享一篇關(guān)于Java中保留兩位小數(shù)的四種方法實現(xiàn)實例,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-02-02

最新評論