关于正则表达式问题

本小白在学习正则表达式时出现了这种情况: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行代码结果不一样呢求大神解答 展开
 我来答
zjgzhengxian
2017-05-16 · TA获得超过1276个赞
知道小有建树答主
回答量:736
采纳率:100%
帮助的人:396万
展开全部

看源代码,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();是一样的

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式