zoukankan      html  css  js  c++  java
  • 正则表达式动态分隔符

    本人只是写了一段代码,感觉性能比较好所以记录下来供自己查看用得:

    public virtual ReturnResult<bool> CheckTimeRange(string range, string operHint, string name, string dateSeparator = ">", string dateRangeSeparator = ";") 
    {
      if (string.IsNullOrEmpty(range))
        return new ReturnResult<bool>(false, operHint + "失败," + name + "日期范围不可为空");
      Regex reg = new Regex(@"(?<sdate>d{4}[-/]d{1,2}[-/]d{1,2})" + dateSeparator + @"(?<edate>d{4}[-/]d{1,2}[-/]d{1,2})");
      string[] sArrays = range.Split(new string[] { dateRangeSeparator }, StringSplitOptions.RemoveEmptyEntries);
      foreach(string sArray in sArrays)
      {
        DateTime firstValue, lastVaule;
        if(!reg.IsMatch(sArray))
          return new ReturnResult<bool>(false, operHint + "失败," + name + "日期格式有误");
    
        string[] dateTimeRanges = Regex.Split(sArray, dateSeparator);
        if (!DateTime.TryParse(dateTimeRanges.First(), out firstValue) || !DateTime.TryParse(dateTimeRanges.Last(), out lastVaule))
          return new ReturnResult<bool>(false, operHint + "失败," + name + "日期格式有误");
        DateTime date = DateTime.Now;
        if (firstValue < date.AddYears(-2) || lastVaule > date.AddYears(2) || firstValue > lastVaule)
          return new ReturnResult<bool>(false, operHint + "失败," + name + "日期范围输入有误");
      }
        return new ReturnResult<bool>(true, name + "时间范围正确");
    }
  • 相关阅读:
    [BZOJ 2457] 双端队列 (思维)
    字符串划分 [Bitset 字符串Dp]
    POJ2947 Widget Factory [高斯消元]
    数字串 [分治+哈希+扩展KMP]
    POJ3590 The shuffle Problem [置换+dp]
    P1970 花匠 [权值线段树优化dp, NOIp2003, Y]
    UVA306 Cipher[循环节]
    POJ3270 Cow Sorting [置换]
    POJ 3128 Leonardo's Notebook[置换群幂相关]
    VMware 11 设置U盘启动,总是找不到physicalDrive1
  • 原文地址:https://www.cnblogs.com/lubolin/p/6472476.html
Copyright © 2011-2022 走看看