考虑以下代码:

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,}的用法,它如何工作,请提供建议和帮助。

最佳答案

此子句称为量词。



它指示一个特定的数字,数字列表或范围(至无穷大)。数字表示确切的出现次数。逗号用于表示倍数(在数字之间)或无穷大的范围(当数字后没有数字时)。

稍后是这种情况:该子句将检查前一组是否出现了1次或多次。

但是,您可以在同一位置用{1,}替换+,以减少字符的产生相同的效果。

我使用regexr.com作为学习和探索正则表达式的资源,这很棒。另外,这是一个非常详尽的Wikipedia page,涵盖了不同版本之间的正则表达式,这是关于量词的Oracle page

关于java - Java Regex的含义{1,},我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38258289/

10-11 03:54