正则表达式

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

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

示例

常用表达式

验证对象

验证表达式

数字字母下划线

 

^[a-z,A-Z,0-9,_]*$

 

手机号

 

^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$

 

电话号

 

^(0[0-9]{2,3}\-?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$

 

电话或手机号

 

^(0[0-9]{2,3}\-?)?([2-9][0-9]{6,7})+(\-[0-9]{1,4})?$|^(13[0-9]|14[0-9]|15[0-9]|18[0-9])\d{8}$

 

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}\"")));

posted on 2016-03-09 02:06  llchang  阅读(326)  评论(0编辑  收藏  举报

导航