//手机号码类型
private enum SJType
{
LT,  //连同
YD,  //移动
Error //错误的
}private string[] strSjh(string sjh)
{
//存储分离后的手机号码
string []SJH = sjh.Split(' ');

Hashtable SJ =new Hashtable();
int i=0;
for (i=0 ;i<SJH.Length -2;i++)
{
//表示是移动的号码
if( Regex.IsMatch(SJH[i],@"^13[5-9]\d{8}$/g"))
{
SJ.Add(SJH[i],SJType.YD );
}//连通的号码
else if( Regex.IsMatch(SJH[i],@"^13[0-2]\d{8}$/g"))
{
SJ.Add(SJH[i],SJType.LT );
}
else//错误的号码
{
SJ.Add(SJH[i],SJType.Error );
}
}
}

解决方案 »

  1.   

    //存储分离后的手机号码
    string []SJH = sjh.Split(' ');
    这句话,你的手机号之间是用一个空格分开的么,还是有可能有多个空格?
    还有,@"13[5-9]\d{8}$/g",最后为什么要加上"/g"?
    如果是@"13[5-9]\d{8}$"是可以匹配所需的字符串的。另外,把循环写成这样:
    for (i=0 ;i<SJH.Length -2;i++)
    {
        //表示是移动的号码 
        if( Regex.IsMatch(SJH[i],@"^13[5-9]\d{8}$/g"))
        {
            SJ.Add(SJH[i],SJType.YD );
            continue;    //加了continue;
        }    //连通的号码
        if( Regex.IsMatch(SJH[i],@"^13[0-2]\d{8}$/g"))
        {
            SJ.Add(SJH[i],SJType.LT );
            continue;
        }    //错误的号码
        SJ.Add(SJH[i],SJType.Error );
        continue;
    }
      

  2.   

    我试了你的代码思路是可以的,
    只是正则表达式不对,出来的全是error了
      

  3.   

    foreach( string s in SJH )
    {
    //表示是移动的号码
    if( Regex.IsMatch(s,@"^13[5-9]\d{8}$"))
    {
    SJ.Add(s,SJType.YD );
    }//连通的号码
    else if( Regex.IsMatch(s,@"^13[0-2]\d{8}$"))
    {
    SJ.Add(s,SJType.LT );
    }
    else//错误的号码
    {
    SJ.Add(s,SJType.Error );
    }
    }
      

  4.   

    用split(' ')试一下吧,也很容易。
      

  5.   

    private enum SJType
    {
        LT,  //连同
        YD,  //移动
        Error //错误的
    }private string[] strSjh(string sjh)
    {
        MatchCollection mcAll = Regex.Matches(sjh, @"^\d{13}$");
        foreach(Match m in mc)
        {
            if( Regex.IsMatch(m.Value, @"^13[5-9]\d{8}$"))
            {
                SJ.Add(m.Value, SJType.YD );
            }//连通的号码
            else if( Regex.IsMatch(m.Value, @"^13[0-2]\d{8}$"))
            {
                SJ.Add(m.Value, SJType.LT );
            }
            else//错误的号码
            {
                SJ.Add(m.Value, SJType.Error );
            }
    }
      

  6.   

    上面有点错误,foreach(Match m in mc)    <---- 应该为 mcAll
      

  7.   

    mobydick(敌伯威|我排著队拿著爱的号码牌)的方法应该可以...楼主验证..