Java的正則表達式
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 stubString 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的正則表達式