此代码未返回正确的结果:
Pattern p=Pattern.compile("^[y]{1,4}$|^[m]{1,4}$|^[d]{1,4}$");
String text1="yyyy";
String text2="mmm";
Matcher m=p.matcher(text);
boolean b=m.find();
System.out.println(String.valueOf(b));
m=p.matcher(text2);
b=m.find();
System.out.println(String.valueOf(b));
第System.out.println(String.valueOf(b));
行打印false
我希望它返回true
。有没有人看到代码有什么问题?
答案 0 :(得分:4)
更简单的正则表达式可能是:
^(y{1,4}|m{1,4}|d{1,4})$
UPDATE1:我也检查了你的正则表达式,它的语法正确但可能是Java正则表达式引擎不喜欢它。
UPDATE2:我甚至检查了你的Java代码,它只对我有用,只有一个例外,在第一部分它是text1
而不是text
你输入的内容
它在我的JVM中打印出true
,所以问题可能不在于你的正则表达式。