7.4.2 使用Regex类
【本节示例参考:\示例代码\C01\ Example_Match】
Regex类包含若干静态方法,用于使用正则表达式进行字符串匹配,常用属性和方法如图7.7所示。
最常用的方法为Match,在输入字符串参数中搜索正则表达式的匹配项,并将匹配成功的结果作为单个Match对象返回。常用形式为:
public static Match Match( string input, string pattern);
其中,方法的参数patten为一个正则表达式,而input为待匹配的字符串。方法返回一个Match对象。Match对象可以表示单个正则表达式匹配的结果。
下面是一个使用Regex的Match方法进行正则表达式匹配的示例,利用一个正则表达式,来验证一个字符串是否是一个合法的电子邮件地址。
代码7-26 验证电子邮件地址示例:Class1.cs
2{
3
4 string input = "zhangsan@sina.com"; //待匹配的输入串
5
6 string patten = @"[a-zA-Z]+@[a-zA-Z]+\.com$"; //正则表达式
7
8 Regex r = new Regex(patten); //声明一个Regex对象
9
10 Match m = r.Match(input); //使用Match方法进行匹配
11 if(m.Success) //循环输出所有的匹配子串
12 {
13 Console.WriteLine(m.Value);
14 }
15 else
16 {
17 Console.WriteLine("Invalid Email Address!");
18 }
19}
代码第6行定义了一个正则表达式“[a-zA-Z]+@[a-zA-Z]+\.com$”,其规则为非空字符串+‘@’+非空字符串+“.com”,具体的含义将在下一节讨论。
第8行声明了一个Regex对象,并通过构造函数为其设置正则表达式;第10行使用Match函数对input字符串进行正则匹配,并将匹配成功的结果串放入一个Match对象。
第11行使用Match对象的Success属性来判断是否匹配成功。如果成功,则输出匹配串,否则,输出错误提示信息。
可以看出,使用Regex类进行字符串的模式匹配非常简单,真正的难点在于正则表达式的构造。