考虑以下代码:
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/