Java 我的正则表达式不起作用
此代码未返回正确的结果:Java 我的正则表达式不起作用,java,regex,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.p
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
。有人知道代码有什么问题吗?更简单的正则表达式可以是:
^(y{1,4}|m{1,4}|d{1,4})$
更新1:我也检查了你的正则表达式,它的语法是正确的,但可能Java正则表达式引擎不喜欢它
更新2:我甚至检查了你的Java代码,它对我有效,只有一个例外,第一部分是text1
,而不是你键入的text
它在我的JVM中为我打印出true
,因此问题可能不在于您的正则表达式。更简单的正则表达式可能是:
^(y{1,4}|m{1,4}|d{1,4})$
更新1:我也检查了你的正则表达式,它的语法是正确的,但可能Java正则表达式引擎不喜欢它
更新2:我甚至检查了你的Java代码,它对我有效,只有一个例外,第一部分是text1
,而不是你键入的text
它在我的JVM中为我打印出true
,所以问题可能不在于你的正则表达式。你使用的是哪种JVM?@KARASZI jdk1.6.0 update20我正在使用它应该在那一个上正常工作。你确定问题在这里吗?你能编译并运行这个示例代码并进行检查吗?很高兴也能看到导入。你使用的是什么类型的JVM?@KARASZI jdk1.6.0 update20我正在使用它。这应该在那一个上正常工作。你确定问题在这里吗?您能编译并运行这个示例代码并检查吗?如果能看到导入也会很好。