2016-07-08 53 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

感谢您提供此类有价值的链接 –