1. 程式人生 > >Java的正則表達式

Java的正則表達式

matcher 狀態 嘗試 ole 沒有 類的方法 編輯 ext exc

Java正則表達式:定義了字符串的模式;可以用來搜索、編輯、或處理文本;

指定為字符串的正則表達式必須首先被編譯為此類的實例。然後將得到的模式用於創建Matcher對象,依照正則表達式,該對象可以與任意字符序列匹配,執行匹配所涉及的所有狀態都駐留在匹配器中,所以多個匹配器可以共享同一模式

因此,典型的調用順序是:

Pattern p = Pattern.compile("a*b");

Matcher m = p.matcher("aaaaaaabccccc");

boolean b = m.matches();

如下例子中:

boolean isMatch = Pattern.matches(pattern,content);僅在使用一次正則表達式時,可以方便使用matches方法。

Java.util.regex包主要包括以下三個類:

  1、Pattern類:pattern對象是一個正則表達式的編譯表示。Pattern類沒有公共構造方法,要創建一個Pattern對象,必須首先調用其公共靜態編譯方法,返回一個Pattern對象,該方法接受一個正則表達式作為它的第一個參數。

package cuiyuee;
import java.util.regex.*;

public class PatternTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
String content = "I am noob from runoob.com."; String pattern = ".*runoob.*"; boolean isMatch = Pattern.matches(pattern,content); System.out.println("字符串中是否包含了 ‘runoob‘ 子字符串?"+ isMatch); } }

  2、Matcher類:Matcher對象是對輸入字符串進行解釋和匹配操作的引擎,與Pattern類一樣,Matcher也沒有公共構造方法,需要調用Pattern對象的matcher方法來獲得一個Matcher對象。

  Matcher類的方法:

    索引方法:提供了有用的索引值,精確表明輸入字符串中在哪能找到匹配。

      public int start():返回以前匹配的初始索引。

      public int start(int group):返回在以前的匹配操作期間,由給定組所捕獲的子序列的初始索引。

      public int end(int group):返回在以前的匹配操作期間,由給定組所捕獲子序列的最後字符之後的偏移量。

    研究方法:用來檢查輸入字符串並返回一個布爾值,表示是否找到該模式。

      public boolean lookingAt():嘗試將從區域開頭開始的輸入序列與該模式匹配。

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

      public boolean find(int start):重置此匹配器,嘗試查找匹配該模式,從指定索引開始的輸入序列的下一個子序列。

      public boolean matches():嘗試將整個區域與模式匹配。

    替換方法:替換輸入字符串裏文本的方法。

      public Matcher appednReplacement(StringBuffer sb,String replacement):實現非終端添加和替換步驟。

      public StringBuffer appendTail(StringBuffer sb):實現終端添加和替換步驟

      public String replaceAll(String replacement):替換模式與給定替換字符串相匹配的輸入序列的每個字序列。

      public String replaceFirst(String replacement):替換模式與給定替換字符串匹配的輸入序列的第一個子序列

      public static String quoteReplacement(String s):返回指定字符串的字面替換字符串。這個方法返回一個字符串,就像傳遞給Matcher類的appendReplacement 方法一個字面字符串一樣工作。

   3、PatternSyntaxException類

      PatternSyntaxException是一個非強制異常類,它指示一個正則表達式模式中的語法錯誤。

      有以下方法幫助我們查看發生了什麽錯誤。

    public String getDescription():獲取錯誤的描述。

    public int getIndex():獲取錯誤的索引。

    public String getPattern():獲取錯誤的正則表達式模式。

    public String getMessage():返回多行字符串,包含語法錯誤及其索引的描述,錯誤的正則表達式模式和模式中錯誤索引的可視化指示。

Java的正則表達式