写一个匹配邮件地址的regular expression,然后找出字符串中匹配它的子串
可用j2sdk1.4或apache jakarta regexp

解决方案 »

  1.   

    楼主的问题非常模糊,什么叫有效的邮件地址?
    就比如你所说的字符串中可以有很多种答案:
    1)[email protected][email protected]
    2)abc([email protected]和xyz([email protected]
    ....
    还有很多
      

  2.   

    分析成 String[] str={"[email protected]","[email protected]"};
    正则表达式怎么写啊,最好又实用的代码,解决后立即结帖。
      

  3.   

    下面是我写的一个简单的从给定字符串中分析出有效邮件地址的程序
    import java.util.regex.*;
    public class Splitter {
    public static void main(String[] args) throws Exception {
    Pattern p = Pattern.compile("[;\\s()]+");
    String[] result = p.split("abc([email protected]);xyz([email protected])");
    for (int i=0; i<result.length; i++){
    int emailerr=0;
    for(int j=0;j<result[i].length();j++){          
    if ((result[i].charAt(j)=='@') & (result[i].length() > 5)){      
       emailerr=emailerr+1;     
    }      
    }
    if(emailerr!=1){
         result[i]="";
        }
    }
    System.out.println("该字符串中包含的有效地址有:");
    for(int i=0;i<result.length;i++)
    if(result[i]!="")
    System.out.println(result[i]+"\r");
    }
    }
      

  4.   

    楼主的兄弟,没有最好的程序,因为一个所谓“有效的”邮件地址对于不同的网站上有不同的标准:比如你的标准可能是邮件地址中不包含"("和")";而CSDN上就允许包含"("和")",所以根据你这个“有效”标准不一样,代码实现也是不一样的