我正在学习java的正则表达式,有一个小问题:我是在练习把网页的Email地址揪出来,发现当Email地址前面是汉字时不能正确显示,是把第一个字母丢掉了,例如,“”把前面的a丢掉了,就成了[email protected],不知道原因是什么,怎么解决这个问题,请教各位高手。

解决方案 »

  1.   

    email= "\\w+((\\.|-)\\w+)*\\@[a-zA-Z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[a-zA-Z0-9]+";
    我试了别人写的正则表达试也有这个问题,不知道是不是编码的问题,你可以在自己机器试试
      

  2.   


    String emailReg= "\\w+((\\.|-)\\w+)*\\@[a-zA-Z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[a-zA-Z0-9]+";
    String str="";
    System.out.println(str.replaceAll(emailReg, "###"));
    不是对的么?
      

  3.   

    这样写是没问题,但是在通过io流读取一个html文件时就出现这种问题,我也不知道为什么,可能编码有问题