还是会抛出邮箱地址无效的异常
--------------
异常?怎么会有异常看你的代码,应该是多个邮箱用“;”分隔,而你的程序是检查到一个非法邮箱就返回false了给出导致结果错误的源字符串吧另外说下你的非法邮箱是什么规则

解决方案 »

  1.   

    刚才那个空格解决了,现在我导入一个有1万多邮箱的文本,其中G[email protected]这个邮箱是非法的,但我不知道这个邮箱错在哪?而且正则表达式应该怎么改?谢谢大哥指点
      

  2.   

    ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$
    可以解决你的问题,我已经测试过
      

  3.   

    这1万多个邮箱地址都是用“;”来分隔的吗?你现在要达到什么样的效果,是检查只要有一个非法的,就返回false即可,还是说要把所有非法的都取出来,如果是都取出来,那源字符串中的非法邮箱是否保留
    [email protected]这个邮箱是非法的,但我不知道这个邮箱错在哪?
    ------------
    没必要指出是哪种错误吧,否则你要列出所有可能的错误进行判断,那你的规则越多,你的效率就越低
      

  4.   

    用javascript判断
    if(!/(\S)+[@]{1}(\S)+[.]{1}(\w)+/.test(txtEmail.value)){ return false; }
      

  5.   

    那就ReadLine,每读一行判断一下,合法的加入StringBuilder,过滤出所有的非法邮箱后,把StringBuilder转为string,赋给收件箱栏就可以了,如果有需要,我写个大概实现这功能的代码吧
      

  6.   

    测试代码StringBuilder sb = new StringBuilder();
    Regex reg = new Regex(@"^[a-zA-Z0-9_]+([-+.][a-zA-Z0-9_]+)*@[a-zA-Z0-9_]+([-.][a-zA-Z0-9_]+)*\.[a-zA-Z0-9_]+([-.][a-zA-Z0-9_]+)*$", RegexOptions.Compiled);
    using (StreamReader sr = new StreamReader(@"e:\test.txt", System.Text.Encoding.Default))
    {
        while (sr.Peek() >= 0)
        {
            string line = sr.ReadLine();
            if (reg.IsMatch(line))
            {
                sb.Append(line);
                sb.Append(";");
            }
        }
    }
    string result = sb.ToString().TrimEnd(';');  //这里是结果
    e:\test.txt内容
    minxihotel [email protected]
    [email protected]
    [email protected]
    [email protected]
    [email protected]
    输出:
    [email protected];[email protected];[email protected]
      

  7.   

    又见
    StringBuilder sb = new StringBuilder();
    哈哈
      

  8.   

    /^([a-zA-Z0-9]|[._])+@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-])+/