Java--正則表達式的入門和小案例

正則表達式

大家都知道,我們在java程序的學習和開發中,會遇到需要匹配、查找、替換、判斷字符串的情況發生,而這些情況有時又比較複雜,如果用純編碼方式解決,往往會浪費程序員的時間及精力。因此,學習及使用正則表達式,便成了解決這一矛盾的主要手段。

 一、.定義:

正則表達式是一種可以用於模式匹配和替換的規範,一個正則表達式就是由普通的字符(例如字符az)以及特殊字符(元字符)組成的文字模式,它用以描述在查找文字主體時待匹配的一個或多個字符串。

二、用途:

常見數據處理操作:

匹配 ----- 驗證郵箱 手機號 QQ號;

替換 ----- 將私人信息隱藏;

分割 ----- name=XXX&sex=XXX&age=XXX;

查找 ----- 網頁中的超鏈接,郵箱;

操作實現:

1、編寫代碼,使用代碼實現:

A、代碼編寫量大   B、代碼通用性差

2、正則表達式:

優點:通用性強;

缺陷:效率低;

    

三、方法概略

      匹配

Pattern ----- public static boolean matches(String regex,CharSequence input);//編譯給定正則表達式並嘗試將給定輸入與其匹配。

          Matcher ----- public boolean matches();//嘗試將整個區域與模式匹配。

       替換

    Matcher ----- public String replaceAll(String replacement);//替換模式與給定替換字符串相匹配的輸入序列的每個子序列

      分割

    Pattern ----- public String[] split(CharSequence input);//圍繞此模式的匹配拆分給定輸入序列。


      查找:字符串沒有封裝

        Matcher ----- public boolean find();//嘗試查找與該模式匹配的輸入序列的下一個子序列。

         Matcher ----- public String group();//返回由以前匹配操作所匹配的輸入子序列。

   

   Ps: JDK提供的正則表達式的使用(以匹配爲例):

      特點:比較繁瑣

     建議:使用String提供的封裝實現

      簡化使用步驟,String的源碼實現,仍然是JDKPattern

 

四、java中處理正則表達式的類

java.lang.String

java.util.regex.Pattern:模式類:字符串要被匹配的這麼一個模式,該模式本身已經被編譯過,使用的話效率要高很多。

java.util.regex.Matcher:匹配類:這個模式匹配某個字符串所產生的結果,這個結果可能會有很多個。

 

五、例子:

學習正則表達式的最好方法是從例子開始,理解例子之後再自己對例子進行修改,實驗。下面給出了簡單的例子,並對它們作了詳細的說明。

 

package net.itcast.a.re;


import java.util.regex.Matcher;

import java.util.regex.Pattern;

 

/**

 * 正則表達式的使用:

 * 驗證QQ號爲例:

 * 

 * 使用方式1

 * 1、編寫正則表達式

 * 2、將正則表達式構建成java對象

 * 3、和一個數據構建生成匹配器

 * 4、指向操作:

 *  判斷是不是合法

 * 

 * 使用要素:

 * 1、要驗證的數據

 * 2、匹配模式

 * 3、調用Java封裝好的API

 * 

 */

public class RE00 {

 

public static void main(String[] args) {

//1、編寫正則表達式

String qqRE = "[1-9][0-9]{4,14}";

//2、調用API

Pattern p = Pattern.compile(qqRE);    //編譯正則表達式

Matcher m = p.matcher("a595306686");  //比較和匹配

//結果

boolean b = m.matches();  //調用方法,打印結果

System.out.println(b);

}


}

 

發佈了29 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章