2016-07-08 56 views
1

考慮下面的代碼:的爪哇正則表達式含義{1,}

import java.util.regex.*; 

class Test { 
    public static void main(String[] args) { 
     String str1 = "xxzz"; 
     String str2 = "xyz"; 
     String str3 = "yzz"; 
     Pattern pattern = Pattern.compile("(xx)*y?z{1,}"); 
     Matcher matcher = pattern.matcher(str1); 
     System.out.println(matcher.matches()); 
     System.out.println(pattern.matcher(str2).matches()); 
     System.out.println(
     Pattern.compile("(xx)*y?z{1,}"). 
     matcher(str3).matches()); 
    } 
} 

這段代碼產生輸出如下:

true 
false 
true 

但是如果刪除{1,}然後如下它將產生輸出:

false 
false 
false 

我無法理解{1,}的使用及其工作原理,請提供建議和幫助。

回答

3

該條款被稱爲量詞。


它指示具體的數字,數字列表或範圍(無窮大)。數字表示確切的出現次數。昏迷用於表示多個(當在數字之間時)或範圍到無窮時(當不跟隨一個數字時)。

這是以後的情況:該子句將檢查一個或多個出現的前一組。

但是,您可以在同一個地方做更少的字符相同的效果與+取代{1,}

我用regexr.com作爲學習和探索的正則表達式,這是美妙的資源。此外,這裏是一個非常徹底它涵蓋了不同版本的正則表達式,這裏是關於量詞的Oracle page iers具體。

+0

感謝您的回覆和有價值的信息。 –

+0

@SarangShinde我剛剛添加了一些我剛發現的鏈接。您可能會發現Oracle鏈接特別有用:) – rtmh

+0

感謝您提供此類有價值的鏈接 –