
关于正则表达式问题
本小白在学习正则表达式时出现了这种情况:1Stringstr1="aasdhj5132@qq.com";2Stringstr2="^\\w+([-+.]\\w+)*@\\...
本小白在学习正则表达式时出现了这种情况: 1 String str1 = "aasdhj5132@qq.com"; 2 String str2 = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$"; 3 System.out.println(Pattern.compile(str2).matcher(str1).matches()); 4 System.out.println(str2.matches(str1));运行着结果:true false为什么3、4行代码结果不一样呢求大神解答
展开
1个回答
展开全部
看源代码,java.lang.String中matches方法的源代码:
public boolean matches(String regex) {
return Pattern.matches(regex, this);
}
也就是说参数才是正则表达式,你写反了
你应该写成str1.matches(str2);或者Pattern.matches(str2,str1);
这两种写法和Pattern.compile(str2).matcher(str1).matches();是一样的
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询