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