Java的Regex中的Pattern Class (2)

MartinYeung
·
·
IPFS
·

閱讀時間: 5分鐘

java.util.regex.Pattern 是其中一個主要連接Regular expression的API。

而Pattern Class 可以改善效率的問題。

接上一篇文章,繼續為大家講解一下Pattern Class的內容。

當大家要使用Pattern.compile()時,就會使用到Pattern.matcher()。

Pattern.matcher()

它的作用是連結一個Regular expression(簡稱Regex)和一個被用於搜尋的text或者String,目的是驗證那個text或者String是不是包含Regex。

import java.util.regex.*; 
public class compileCase{ 
    public static void main(String[] args) 
    { 
        //首先創建一個Regex String REGEX = ".*www.*"; 

        //創建第2個RegexString REGEX2 = ".*uppen*";
  
        // 創建一個String, 會被用於搜尋的textString actualString 
            = "www.uppengarden.com"; 

		// 創建第2個String, 會被用於搜尋的textString actualString2 
            = “happy&uppen"; 
  
        // 使用compile() method 
        Pattern pattern = Pattern.compile(REGEX); 
  
        // 創建一個 matcher物件 
        Matcher matcher = pattern.matcher(actualString); 
  
        // 驗證REGEX是否在actualString中
        boolean matches = matcher.matches(); 
  
        System.out.println("actualString "
                           + "contains REGEX = "
                           + matches); 
    } 
}

解釋:

Matcher matcher = pattern.matcher(actualString);

pattern是指用哪個Regex,而String REGEX是其中一個選擇。

matcher()中的參數是指在哪個test或者String做搜尋,而String actualString是其中一個選擇。

Pattern.pattern()

目的是返回pattern的string (Regex)。

Matcher matcher = pattern.matcher(actualString);

想知道String pattern正在用哪一個Regex。

import java.util.regex.pattern; 
public class compileCase2{ 
    public static void main(String[] args) 
    { 
        //首先創建一個Regex String REGEX = ".*www.*"; 

        //創建第2個RegexString REGEX2 = ".*uppen*";
  
        // 創建一個String, 會被用於搜尋的textString actualString 
            = "www.uppengarden.com"; 

		// 創建第2個String, 會被用於搜尋的textString actualString2 
            = “happy&uppen"; 
  
        // 使用compile() method 
        Pattern pattern = Pattern.compile(REGEX); 
  
        // 創建一個 matcher物件 
        Matcher matcher = pattern.matcher(actualString); 
  
        // 返回pattern的Regex,目前是String REGEX
        String pattern2 = pattern.pattern();
    } 
}


CC BY-NC-ND 2.0 授权

喜欢我的作品吗?别忘了给予支持与赞赏,让我知道在创作的路上有你陪伴,一起延续这份热忱!

MartinYeungLove life Love IT IT blog: https://ithelp.ithome.com.tw/users/20119569
  • 来自作者
  • 相关推荐

Java - Volatile keyword的介紹

Java - Atomic VS Volatile

Java - Thread-Safety是什麼 - Part 3