Java的Regex

來源:互聯網
上載者:User

標籤:表示   aaaaa   util   code   []   靜態   參數   test   正則   

JavaRegex:定義了字串的模式;可以用來搜尋、編輯、或處理文本;

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

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

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

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

boolean b = m.matches();

如下例子中:

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

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

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

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是一個非強制異常類,它指示一個Regex模式中的語法錯誤。

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

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

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

    public String getPattern():擷取錯誤的Regex模式。

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

 

Java的Regex

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.