• 时间验证 正则表达式


    时间验证正则表达式
    2009年03月24日 上午 10:04
    多次验证已解决润年问题的时间验证正则表达式:
    正确时间格式示例:
    日期部分:2007-1-11  2007/11/1  2007 1 11  07-11-1  07/1/11  07 11 1
    时间部分:5:5:5  05:05:05
    ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(2[0-3])|(1[0-9]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$
    
      常用的元字符
    . 匹配除换行符以外的任意字符 
    \w 匹配字母或数字或下划线或汉字 
    \s 匹配任意的空白符 
    \d 匹配数字 
    \b 匹配单词的开始或结束 
    ^ 匹配字符串的开始 
    $ 匹配字符串的结束 
    
      常用的限定符
    * 重复零次或更多次 
    + 重复一次或更多次 
    ? 重复零次或一次 
    {n} 重复n次 
    {n,} 重复n次或更多次 
    {n,m} 重复n到m次 
    
      常用的反义代码
    \W 匹配任意不是字母,数字,下划线,汉字的字符 
    \S 匹配任意不是空白符的字符 
    \D 匹配任意非数字的字符 
    \B 匹配不是单词开头或结束的位置 
    [^x] 匹配除了x以外的任意字符 
    [^aeiou] 匹配除了aeiou这几个字母以外的任意字符 
    
      分组语法
    捕获
    (exp) 匹配exp,并捕获文本到自动命名的组里 
    (?<name>exp) 匹配exp,并捕获文本到名称为name的组里,也可以写成(?'name'exp) 
    (?:exp) 匹配exp,不捕获匹配的文本,也不给此分组分配组号 
    
    零宽断言 
    (?=exp) 匹配exp前面的位置 
    (?<=exp) 匹配exp后面的位置 
    (?!exp) 匹配后面跟的不是exp的位置 
    (?<!exp) 匹配前面不是exp的位置 
    
    注释 
    (?#comment) 这种类型的组不对正则表达式的处理产生任何影响,用于提供注释让人阅读 
    
    最先开始的匹配最有最大的优先权——The Match That Begins Earliest Wins)。
    
    表5.懒惰限定符 *? 重复任意次,但尽可能少重复 
    +? 重复1次或更多次,但尽可能少重复 
    ?? 重复0次或1次,但尽可能少重复 
    {n,m}? 重复n到m次,但尽可能少重复 
    {n,}? 重复n次以上,但尽可能少重复 
    
    this.ProName.Text=reg.IsMatch(this.Time.Text).ToString();
    时间验证
    ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(2[0-3])|(1[0-9]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$
    ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s] ((((0?[13578])|(1[02]))[\-\/\s] ((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s] ((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s] ((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s] ((((0?[13578])|(1[02]))[\-\/\s] ((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s] ((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s] ((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(2[0-3])|(1[0-9]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$
    可用: ^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(2[0-3])|(1[0-9]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$
    可用2  xxxx:yy:xx yy:xx:^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]((((0?[13578])|(1[02]))[\-\/\s]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|(2[0-3])|(1[0-9]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))?))?$
    
    string regex = @"^((\d{2}(([02468][048])|([13579][26]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|([1-2][0-9])))))|(\d{2}(([02468][1235679])|([13579][01345789]))[\-\/\s]?((((0?[13578])|(1[02]))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\-\/\s]?((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\-\/\s]?((0?[1-9])|(1[0-9])|(2[0-8]))))))(\s(((0?[0-9])|([1-2][0-3]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$"; //日期部分
      regex += @"(\s(((0?[0-9])|(2[0-3])|(1[0-9]))\:([0-5]?[0-9])((\s)|(\:([0-5]?[0-9])))))?$"; //时间部分
  • 相关阅读:
    Javascript 获取链接(url)参数的方法
    开源项目托管 SourceForge, Google Code, CodePlex
    17种正则表达式
    varchar(MAX)SQL2005的增强特性
    sql语句格式化工具
    中国学佛66句禅语
    Office 2003正版验证破解方法
    Installing Windows CE 6.0 tools on a Windows7 64bit PC (Updated again)
    Using C# Connector SQLite
    Invoking web services with Java clients
  • 原文地址:https://www.cnblogs.com/captain_ccc/p/1529793.html
Copyright © 2020-2023  润新知