正则表达式
u
n
n
n
u
u
n
n
拆分字符串
u
正则表达式的概述
u
u
n
String MyRegex=”@\d(5)”
u
①查找【搜索,匹配,验证】
②拆分
③替换
正则表达式语言元素—元字符
u
u
|
|
u
①
②
③
④
⑤
⑥
⑦
⑧
⑨
⑩
正则表达式的局限性
一个验证邮件地址的正则表达式
国内电话号码:(\(0\d{2,3}\)|0\d{2,3}-)?\d{7,8}(-\d{1,4})?
支持:(010)6906593;0106906593;010-6906593;6906593;6906593-1234;010-6906593-1234;
国内手机号码:^(13[0-9]|15[0-9]|18[8|9|7])\d{8}$
邮编:^\d{6}$
QQ号码:^[1-9]\d{4,8}$
英语:^[A-Za-z]\w{1,}+$
时间的正则表达式:^((((1[6-9]|[2-9]\d)\d{2})-(0?[13578]|1[02])-(0?[1-9]|[12]\d|3[01]))|(((1[6-9]|[2-9]\d)\d{2})-(0?[13456789]|1[012])-(0?[1-9]|[12]\d|30))|(((1[6-9]|[2-9]\d)\d{2})-0?2-(0?[1-9]|1\d|2[0-8]))|(((1[6-9]|[2-9]\d)(0[48]|[2468][048]|[13579][26])|((16|[2468][048]|[3579][26])00))-0?2-29-))(20|21|22|23|[0-1]?\d):[0-5]?\d$
使用常用正则表达式验证数据
Email : ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$,
Phone :^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$,
Mobile : ^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$,
Url :^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^\"\"])*$,
IdCard : ^\d{15}(\d{2}[A-Za-z0-9])?$,
Currency : ^\d+(\.\d+)?$,
Number : ^\d+$,
QQ : ^[1-9]\d{4,8}$,
Integer : ^[-\+]?\d+$,
Double : ^[-\+]?\d+(\.\d+)?$,
English : ^[A-Za-z]+$,
Chinese : ^[\u0391-\uFFE5]+$,
Username : ^[a-z]\w{3,}$
正则表达式在VS.NET中的应用
Regex类
Regex表示正则表达式(解析和处理文本),用途:
①查询字符串,搜索匹配正则表达式模式的字符串
②拆分字符串,标识分隔符,将字符串拆分为字符串
③
RegexOptions枚举类型
Regex类的方法
MatchCollection 类和Match类
MatchCollection 类表示通过一迭代
拆分字符串
使用正则表达式来标识分隔符,拆分字符串
Regex r = new Regex(@"\\");
string [] parts =r.Split(@"c:\inetpub\wwwroot\study");
foreach (string tmpstr in parts)
{ Console.WriteLine(tmpstr);
替换字符串
使用正则表达式来标识的文本,以执行查找替换
string input = "this is a good day";
Regex r5 = new Regex("good");
String output = r5.Replace(input, "happy");
提取字符串
从字符串中提出数据,步骤
1. 创建一个正则表达式,并用圆括号括起来;
2. 利用Regex.Match静态方法创建
System.Text.RegularExpressions.Match 的实例;
3. 调用 Match.Groups数组获取数据。
string input = "Company Name: Contoso, Inc.";
string myRegex = @"Company Name: (.*$)";
Match m = Regex.Match(input, myRegex);
Console.WriteLine(m.Groups[1]);
查询字符
使用正则表达式来指定模式,来判断字符串是否
Console.WriteLine(Regex.IsMatch("1234",@"\d{5}"));
Console.WriteLine(Regex.IsMatch("12345",@"\d{5}"));
Console.WriteLine(Regex.IsMatch("12345","\\d{5}"));
Regex r1 = new Regex(@"\d{5}");
Console.WriteLine(r1.IsMatch("1234"));
Regex rx = new Regex(@"-?\d+(\.\d{2})?");
//Regex rx = new Regex(@"^-?\d+(\.\d{2})?$");
string[] tests = { "-52", "19.99", "0.001", "100abc" };
foreach (string test in tests)
{
else
{ Console.WriteLine("{0} no.", test); }
}