我的正则表达式不起作用

时间:2011-03-05 08:39:17

标签: java regex

此代码未返回正确的结果:

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。有没有人看到代码有什么问题?

1 个答案:

答案 0 :(得分:4)

更简单的正则表达式可能是:

^(y{1,4}|m{1,4}|d{1,4})$

UPDATE1:我也检查了你的正则表达式,它的语法正确但可能是Java正则表达式引擎不喜欢它。

UPDATE2:我甚至检查了你的Java代码,它只对我有用,只有一个例外,在第一部分它是text1而不是text你输入的内容

它在我的JVM中打印出true,所以问题可能不在于你的正则表达式。