正则表明式验证时间格式与时光计算,正则表达式

数据库

说前年月日时分秒的正则表明式,格式yyyy-MM-dd HH:mm:ss   
    ([0-9]{4})-([0-9]{2})-([0-9]{2})
([0-9]{2}):([0-9]{2}):([0-9]{2})

1,引子

正则表明式的使用,能够经过轻便的措施来达成庞大的功效。正是用一串字符验证是契合一种规范,那几个正式正是正则表明式。

2,正则表明式的历史

RegExp 是正则表达式的缩写
正则表达式的首先个实用应用程序正是Unix 中的 ged 编辑器。

5,全体符号解释

表2.常用的元字符

代码

说明

^

匹配字符串的开始

$

匹配字符串的结束

.

匹配除换行符以外的所有字符

\w

匹配字母或数字或下划线或汉字

\s

匹配任意的空白符(空格)

\d

匹配数字

\b

匹配单词的开始或结束

\d{8}表示数字再一次出现8次,如若是QQ号能够那样表示\d{5,12}
表2.常用的限制符

代码/语法

说明

*

重复零次或更多次

+

重复一次或更多次

?

重复零次或一次

{n}

重复n次

{n,}

重复n次或更多次

{n,m}

重复n到m次,n不能大于m

8,C#中对正则的选用

RegularExpression 组合体

使用RegExp法规类需援引System.Text.RegularExpressions文件

该名字空间中包括6个类和一个定义

描述

Capture

包含一次匹配的结果

CaptureCollection

Captrue的序列

Group

一次组记录的结果,由Capture继承而来

Match

一次表达式的匹配结果,由Group继承而来

MatchCollection

执行替换操作时使用的代理

Regex

编译后表达式的实例

   

Regex蕴涵的一对静态的主意:

方法

描述

Escape

对字符串中的regex中的转义符进行转义

IsMatch

判断是否匹配字符串,返回一上布尔值

Match

返回Match的实例

Matchs

返回一系列Match的方法

Replace

用替换字符串替换匹配的表达式

Split

返回一系列由表达式决定的字符串

Unescape

不对字符串中的转义字符进行转义

示例

常用表明式数据库,

验证对象

验证表达式

数字字母下划线

 

手机号

 

电话号

 

电话或手机号

 

1,正则表明式验证手提式有线电话机号

Regex reg=new
Regex(@”^(12[0-9]|186|188|150|151|158|159|147)\d{8}$”);

1,判定是不是相配

using System;

using
System.Collections.Generic;

using System.Linq;

using System.Text;

using
System.Text.RegularExpressions;

 

namespace
ConsoleApplication1

{

class Program

{

static void
Main(string[] args)

{

while (true)

{

Console.WriteLine(“请输入三个四个人数字”);

string regstr =
@”^\d\d\d$”;

Regex reg = new
Regex(regstr);

string intputstr =
Console.ReadLine();

if
(reg.IsMatch(intputstr))

{

Console.WriteLine(“正确”);

}

else

{

Console.WriteLine(“错误”);

}

Console.ReadKey();

}

}

}

}

 

 

2,正则表明式推断开端字母是或不是为8

if (dt != null &&
dt.Rows.Count > 0)

{

string a =
dt.Rows[0][0].ToString();

string regstr =
@”^8…….$”;

Regex reg = new
Regex(regstr);

if (reg.IsMatch(a))

{

flag = true;

}

else { flag = false; }

}

 

 

例3:

string regstr =
@”^\(?0\d{2}[) -]?\d{8}$”;

Regex reg = new
Regex(regstr);

string intputstr =
“010-22222222”;

if
(reg.IsMatch(intputstr))

{

Console.WriteLine(“正确”);

}

else

{

Console.WriteLine(“错误”);

}

 

例4:MatchEvaluator

return
_JsonDateReg.Replace(jsonStr,new
System.Text.RegularExpressions.MatchEvaluator(obj=>string.Format(“:\”{0:yyyy-MM-dd
HH:mm:ss}\””)));

System.Text.RegularExpressions.Regex reg = new
System.Text.RegularExpressions.Regex(“^(([0-1]\\d)|(2[0-4])):[0-5]\\d$”);

 使用DATEDIFF函数总括时间差,第二个参数datepart为地方图表中缩写,用于总计出结果时间的单位,结果类型为int类型,第二个参数为发端时间,须求是光阴格式,第多少个参数是甘休时间,需求是岁月格式。

if (!flags)

select DATEDIFF(MI,’二〇一五-08-20 13:13:20′,’2014-08-20 15:14:20′)  
–查询出四个日子距离多少分钟(121)

 二、计算时间

 在后台.cs文件中接纳正则表达式验证时间日期格式,还索要别的格式只要求换正则表明式就可以。

一、时间格式验证

bool flag = reg.IsMatch(“时间字段”);

select    121 / 60 ,121-(121 / 60*60)  –得出分钟则可计算小时

datepart 缩写
yy, yyyy
季度 qq, q
mm, m
年中的日 dy, y
dd, d
wk, ww
星期 dw, w
小时 hh
分钟 mi, n
ss, s
毫秒 ms
微妙 mcs
纳秒 ns

 

{throw new Exception(“时间格式错误”)}

评释小时秒钟的正则表明式,格式  
HH:mm    ^(([0-1]\\d)|(2[0-4])):[0-5]\\d$

例:

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图