网站链接: 我爱捣鼓
当前位置: 首页 > web开发  > Asp.net/C#

C#使用正则表达式判断字符串是否为日期方法代码?

2021/4/10 21:35:57

/// <summary> /// 使用正则表达式判断是否为日期 /// </summary> /// <param name="str" type=string></param> /// <returns name="isDateTime" type=bool></returns> public bool I…

正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。

C# 正则表达式

正则表达式 是一种匹配输入文本的模式。

.Net 框架提供了允许这种匹配的正则表达式引擎。

模式由一个或多个字符、运算符和结构组成。

下面我们来看看C#使用正则表达式判断字符串是否为日期的具体方法

      /// <summary>  
    /// 使用正则表达式判断是否为日期  
    /// </summary>  
    /// <param name="str" type=string></param>  
    /// <returns name="isDateTime" type=bool></returns>  
    public bool IsDateTime(string str)  
    {  
        bool isDateTime = false;  
        // yyyy/MM/dd  
        if (Regex.IsMatch(str, "^(<year>\\d{2,4})/(<month>\\d{1,2})/(<day>\\d{1,2})$"))  
            isDateTime = true;  
        // yyyy-MM-dd   
        else if (Regex.IsMatch(str, "^(<year>\\d{2,4})-(<month>\\d{1,2})-(<day>\\d{1,2})$"))  
            isDateTime = true;  
        // yyyy.MM.dd   
        else if (Regex.IsMatch(str, "^(<year>\\d{2,4})[.](<month>\\d{1,2})[.](<day>\\d{1,2})$"))  
            isDateTime = true;  
        // yyyy年MM月dd日  
        else if (Regex.IsMatch(str, "^((<year>\\d{2,4})年)(<month>\\d{1,2})月((<day>\\d{1,2})日)$"))  
            isDateTime = true;  
        // yyyy年MM月dd日  
        else if (Regex.IsMatch(str, "^((<year>\\d{2,4})年)(正|一|二|三|四|五|六|七|八|九|十|十一|十二)月((一|二|三|四|五|六|七|八|九|十){1,3}日)$"))  
            isDateTime = true;  
        // yyyy年MM月dd日  
        else if (Regex.IsMatch(str, "^(零|〇|一|二|三|四|五|六|七|八|九|十){2,4}年((正|一|二|三|四|五|六|七|八|九|十|十一|十二)月((一|二|三|四|五|六|七|八|九|十){1,3}(日)))$"))  
            isDateTime = true;  
        // yyyy年  
        //else if (Regex.IsMatch(str, "^(<year>\\d{2,4})年$"))  
        //    isDateTime = true;  
        // 农历1  
        else if (Regex.IsMatch(str, "^(甲|乙|丙|丁|戊|己|庚|辛|壬|癸)(子|丑|寅|卯|辰|巳|午|未|申|酉|戌|亥)年((正|一|二|三|四|五|六|七|八|九|十|十一|十二)月((一|二|三|四|五|六|七|八|九|十){1,3}(日)))$"))  
            isDateTime = true;  
        // 农历2  
        else if (Regex.IsMatch(str, "^((甲|乙|丙|丁|戊|己|庚|辛|壬|癸)(子|丑|寅|卯|辰|巳|午|未|申|酉|戌|亥)年)(正|一|二|三|四|五|六|七|八|九|十|十一|十二)月初(一|二|三|四|五|六|七|八|九|十)$"))  
            isDateTime = true;  
        // XX时XX分XX秒  
        else if (Regex.IsMatch(str, "^(<hour>\\d{1,2})(时|点)(<minute>\\d{1,2})分((<second>\\d{1,2})秒)$"))  
            isDateTime = true;  
        // XX时XX分XX秒  
        else if (Regex.IsMatch(str, "^((零|一|二|三|四|五|六|七|八|九|十){1,3})(时|点)((零|一|二|三|四|五|六|七|八|九|十){1,3})分(((零|一|二|三|四|五|六|七|八|九|十){1,3})秒)$"))  
            isDateTime = true;  
        // XX分XX秒  
        else if (Regex.IsMatch(str, "^(<minute>\\d{1,2})分(<second>\\d{1,2})秒$"))  
            isDateTime = true;  
        // XX分XX秒  
        else if (Regex.IsMatch(str, "^((零|一|二|三|四|五|六|七|八|九|十){1,3})分((零|一|二|三|四|五|六|七|八|九|十){1,3})秒$"))  
            isDateTime = true;  
        // XX时  
        else if (Regex.IsMatch(str, "\\b(<hour>\\d{1,2})(时|点钟)\\b"))  
            isDateTime = true;  
        else  
            isDateTime = false;  
        return isDateTime;  
    }


以上就是C#使用正则表达式判断字符串是否为日期的具体实现方法,感谢您访问“我爱捣鼓(www.woaidaogu.com)”网站的内容,希望对大家有所帮助!引用本文内容时,请注明出处!谢谢合作!

相关资讯

  • C#怎么获取文件夹里所有的图片文件?

    在实际的程序开发中,我们经常需要获取某个文件夹下的所有图片,用到了C#的DirectoryInfo、GetFiles等文件操作方法,具体实现如下://自定义一个结构public struct sFileInfo{ public string FileName; public DateTime FileCreateTime;}protected void Page_Load(…

    2021/3/4 21:48:01
  • c#实现日期时间与unix时间戳互相转换

    为什么使用时间戳?关于Unix时间戳,大概是这个意思,从1970年0时0分0秒开始到现在的秒数.使用它来获得的是一个INT值,储存在数据库里只要使用INT格式就可以了,方便数据库进行排序,搜索,而且比datetime格式更节省数据库空间。 /// <summary> /// Uni…

    2021/3/4 21:40:22