private bool IN(string yourNum ,int BeginNum, int EndNum )
{
int iYouNum=0;
try{iYouNum=int.Parse(yourNum);}//int 要是不够就换个类型
catch{return false;}
if(BeginNum>=iYouNum&&iYouNum>=EndNum)
return true;
if(BeginNum<=iYouNum&&iYouNum<=EndNum)
return true;
return false;
}//数学方法 仅供娱乐,因为其解决不了  PS:字符串长度大小不确定。 ^-^

解决方案 »

  1.   

    如果只是7307到7326,可以把它转换为int进行比较
    如果后面有n个数字(不确定),转换成字符串,然后分割两部分
    前面还是进行数字判断,后面用正则判断是否为数字就好了萨
    @"/d[0,]"
    正则表达式也不是万能的哈
      

  2.   

    不用正则行不??
    private bool validString(string s, int from, int to)
            {
                int length = to.ToString().Length;
                if (s.Length < length)
                {
                    return false;
                }
                int temp = 0;
                int.TryParse(s.Substring(0, length),out temp);
                return (temp <= to && temp >= from);
            }
    呵呵
      

  3.   

    正则也不会简单到哪里去吧?君不见时间的正则表达式^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-)) (20|21|22|23|[0-1]?\d):[0-5]?\d:[0-5]?\d$很长很长
      

  4.   

    楼上的试试如果FROM和TO是不固定的呢?
      

  5.   

    如果说楼主要求的这个范围是固定的,比如说就是7307-7326,那么用正则可以,如果不固定,也就是需求会变的,那不适合用正则来做,因为没有办法根据输入的起始值和结束值,来生成一个范围的正则表达式,这样的还是用数学方法比较吧if(Regex.IsMatch(yourStr, @"^73(?:0[7-9]|1[0-9]|2[0-6])[0-9]*$"))
    {
        MessageBox.Show("符合");
    }
    else
    {
        MessageBox.Show("不符合");
    }