c#中要判断输入的IP格式是否正确,该怎么写正则表达式啊,函数该怎么写啊,求解?

解决方案 »

  1.   

      /// <summary>
            /// 是否为ip
            /// </summary>
            /// <param name="ip"></param>
            /// <returns></returns>
            public static bool IsIP(string ip)
            {
                return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)$");
            }        public static bool IsIPSect(string ip)
            {
                return Regex.IsMatch(ip, @"^((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){2}((2[0-4]\d|25[0-5]|[01]?\d\d?|\*)\.)(2[0-4]\d|25[0-5]|[01]?\d\d?|\*)$");
            }
      

  2.   

    将IP分割成数组
     string[] sIPA = this.txtIp.Text.Trim().Split('.');然后根据数组和IP的规则来判断,LZ应该知道吧假如sIPA[0]>255 不规则....一次类推 用for循环判断也可以
      

  3.   

    分组
    我们已经提到了怎么重复单个字符(直接在字符后面加上限定符就行了);但如果想要重复多个字符又该怎么办?你可以用小括号来指定子表达式(也叫做分组),然后你就可以指定这个子表达式的重复次数了,你也可以对子表达式进行其它一些操作(后面会有介绍)。(\d{1,3}\.){3}\d{1,3}是一个简单的IP地址匹配表达式。要理解这个表达式,请按下列顺序分析它:\d{1,3}匹配1到3位的数字,(\d{1,3}\.){3}匹配三位数字加上一个英文句号(这个整体也就是这个分组)重复3次,最后再加上一个一到三位的数字(\d{1,3})。IP地址中每个数字都不能大于255,大家千万不要被《24》第三季的编剧给忽悠了……
    不幸的是,它也将匹配256.300.888.999这种不可能存在的IP地址。如果能使用算术比较的话,或许能简单地解决这个问题,但是正则表达式中并不提供关于数学的任何功能,所以只能使用冗长的分组,选择,字符类来描述一个正确的IP地址:((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)。理解这个表达式的关键是理解2[0-4]\d|25[0-5]|[01]?\d\d?,这里我就不细说了,你自己应该能分析得出来它的意义。
    http://deerchao.net/tutorials/regex/regex.htm
      

  4.   

    真心不理解2[0-4]\d|25[0-5]|[01]?\d\d?,的含义呀?求解释
      

  5.   

        System.Text.RegularExpressions.Regex check = new System.Text.RegularExpressions.Regex(@"^(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9])\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[1-9]|0)\.(25[0-5]|2[0-4][0-9]|[0-1]{1}[0-9]{2}|[1-9]{1}[0-9]{1}|[0-9])$");
                if (!check.IsMatch(dpo_ip.Text))
                {
                    string strMessage = "请填入正确的IP地址!";
                    MessageBox.Show(strMessage);
                    dpo_ip.Focus();
                }
    直接复制  即可运行!
               
      

  6.   

    我最SB~~~~~~~public bool yanIP(String IP)//验证IP
            {
                String[] sArr = IP.Split(new char[] { char.Parse(".") });
                if (sArr.Length == 4)
                {
                    try
                    {
                        int one = int.Parse(sArr[0].ToString());
                        int two = int.Parse(sArr[1].ToString());
                        int three = int.Parse(sArr[2].ToString());
                        int four = int.Parse(sArr[3].ToString());
                        if (one > 255 || two > 255 || three > 255 || four > 255 || one < 0 || two < 0 || three < 0 || four < 0)
                        {
                            return false;
                        }
                        else
                        {
                            return true;
                        }
                    }
                    catch (Exception ce)
                    {
                        return false;
                    }
                }
                else
                {
                    return false;
                }
            }