一个这样开始时间跟结束时间的正则,08:00-20:00结束时间    小时是00-23 分钟是0-60这样的.

解决方案 »

  1.   

    (?n)(?<from>([01]\d|2[0123]):([0-5]\d|60))-(?<to>([01]\d|2[0123]):([0-5]\d|60))
    取from和to分组。得到时间。验证则直接用此表达式。
      

  2.   

    private static void TestRegex29()
    {
        Regex regExp = new Regex(@"(?n)(?<from>([01]\d|2[0123]):([0-5]\d|60))-(?<to>([01]\d|2[0123]):([0-5]\d|60))");
        string test = "08:00-20:00";
        Match m = regExp.Match(test);
        if (m.Success)
        {
            //如果要分理处具体时间
            Console.WriteLine("开始时间:" + m.Groups["from"].Value);
            Console.WriteLine("结束时间:" + m.Groups["to"].Value);
            //如果你需要DateTime进行处理
            DateTime from = DateTime.Parse(m.Groups["from"].Value);
            DateTime to = DateTime.Parse(m.Groups["to"].Value);
            Console.WriteLine(to > from ? "很好,正确。" : "错误,结束时间早于开始时间。");
        }
    }
      

  3.   

    本帖最后由 lxcnn 于 2010-09-17 10:26:03 编辑
      

  4.   

    (?n)(?<from>([01]\d|2[0123]):([0-5]\d|60))-(?<to>([01]\d|2[0123]):([0-5]\d|60))顶!